You don't always need a missed block, but if you do, there are alternative paths to aquire missed data.
So, how do you know that you missed a needed block?
Oh, I'm sorry I missed this little tidbit.
The client knows when it's missing a block, because the headers are numbered as well as "chained". It can tell immediately when it's missed a block. How that can be handled, either automaticly or otherwise, would depend upon the user's situation. Something like a Pskmail server, modded for Bitcoin, would work for the random user far from any urban area. So would paying for a few megabytes over a sat phone. Even a usb drive over a snailmail "sneakernet" (or, more likely for the regions discussed, a "motorcyclenet") would work great as a method to get a somewhat recent copy of the
full blockchain into otherwise disconnected networks. A single, modified client running on something like a piratebox could form the basis for bitcoin trades among patrons at a particular market. If the client could receive a regular or on-going datacast stream of block-headers & merkle trees; it could verify that the network has accepted transactions that occured locally (since it already had those transactions) and learn about all other transactions from a regular full blockchain update via a monthly usb-drive delivery from a completely different source. It could broadcast it's own locally discovered transactions to the rest of the network via PSKmail like shortwave connection once each day, by connecting to such a server 300 to 400 miles away (Near vertical incidental skywave, single hop) using a soundcard connected single-side band tranceiver (most common shortwave gear) pushing only 10 watts.