I'm not a programmer, but I keep coming up with ideas that haven't been implemented, and maybe someone will like them and use them (see my post about including an "escape" Bitcoin address into clients to retrieve stolen phones w/ bitcoin).
I was reading through Bitcoin Wiki, and came across https://en.bitcoin.it/wiki/Contracts
, which is essentially a built-in escrow/contract system that can be used to require two keys, one direct and one of a third party, to release bitcoin that was sent to an address. How difficult would it be implement the second escrow key on a USB stick? Example would be, say I'm a high-roller (early adopter) with thousands of bitcoins, and I want to secure a few of them in a "vault." I would use the Bitcoin software to send some bitcoin to my own address, and the software would configure and encrypt a key to the plugged-in USB stick that contains the second "escrow" address. I then take out the USB stick and store it securely somewhere. If someone manages to steal my wallet.dat file later, they will still not be able to access the money in my "vault" without this physical USB stick.