To essentially eliminate any risk due to double spending, the recommended level of confirmations is six.
For most transactions such as those to a bricks and mortar merchant, payment might be accepted immediately (with 0 confirmations), but that exposes the merchant to a small degree of double-spending risk.
A recommendation for merchants running their own node is to have the configuration where there are no incoming connection and to explicitly have an outgoing connection to a well-connected node.
Thus, properly configured this way, the merchant is not much at risk of double spending because either the transaction was broadcast and it reached the well-connected node that the merchant connects to or it didn't and the merchant doesn't know about it until communications from the party attempting to pay can be re-established with the outside world.
In that scenario, bitcoin fares no worse than any other merchant payment system as those require authorization from connected sources as well.
The amount of data to receive blockchain data is relatively little -- under 100MB per day. Thus even a single dialup modem connection is all that would be needed and that node could then serve all other nodes connected locally.
Additionally, if mobile communications are present, the merchant could simply use mobile notification from a hosted service and not run using a node at all.
There is a business solution not a technical one to the specific scenario requested. Just as a hotel will accept a check from a guest even when it doesn't have a guarantee that the check won't bounce, a merchant can accept a bitcoin transaction even when there are no communications by adding a layer above (e.g., verifying identification, getting approval to charge against a backup payment method using a credit card, not selling anything of high value during the communications outage, etc.)
Thank you. Who are the "well connected nodes", or how would I create one? Also what software should I use to have my own node in this case? Just the bit coin wallet? – goodguys_activate – 2012-09-17T12:39:43.967
Mining pools would be one example. Suggestions ar here: http://bitcoin.stackexchange.com/q/3961/153 This service could be offered commercially if there is demand. As far as how to provide this yourself, yes, simply using the -nolisten and -connect= to pools on a trusted node will result in a "well connected node" all your own. Here's the syntax: http://en.bitcoin.it/wiki/Running_Bitcoin
– Stephen Gornick – 2012-09-17T17:54:37.593