As soon as it is stolen, mount the backup in your desktop client and transfer the funds somewhere else.
Idea 2: This can only be done when contracts are implemented in the mainline client otherwise the transaction will never be stored in the blockchain.
Regarding 2, Gmaxwell mentioned that it can be done if the client can be programmed to create yet another private key (wallet file) encrypted on the USB key, and move funds to that. So, it's already possible, but don't know how well it will work.
I know there are better and more secure ways of doing this, but I'm thinking about how to make it easy enough for grandma to do it.
I think you can already do this with the bitcoind.exe, I never used the android app , but if you could force it to use the local daemon you would only be using the wallet on the local computer rather than on the phone. as far as i know that would work, but for grandma you would need to make the process easy, you push a button in the client and it pops a box open with a QR code and manual information box, and a test button on both the phone and the client to ensure everything was typed in correctly. all it would do is list username/password ip:port and some random characters for testing.