suggestion:
henceforth, 1e-8 bitcoins will be called "a bitcoin".
all bitcoin amounts will henceforth be integers.
sending 1 "oldbtc" to someone? just send 10million 'newbtc'.
solves all problems very neatly.
and also removes any psychological barriers around having "1 btc = 100usd"
EDIT: that said, i essentially like gavin's proposal, except for the cosmetics.
I strongly disagree.
We should keep the idea of using standard prefixes.
1 centibitcoin = 10^-2 BTC
1 millibitcoin = 10^-3 BTC
1 microbitcoin = 10^-6 BTC
1 nanobitcoin = 10^-9 BTC
In Satoshi's code, the smaller unit is called "the coin". We should use this.
1 coin = 10^-8 BTC = 10 nanobitcoins
Even if the nanobitcoin is too small a unit, we can still use it, as long as we only talk about multiples of 10. 10 nanobitcoins, 40 nanobitcoins, and so on...
An other, yet compatible possibility is to start from bottom :
1 coin = 10^-8 BTC
10^3 coins = 1 kilocoin = 10^-5 BTC
10^6 coins = 1 megacoin = 10^-2 BTC
10^9 coins = 1 gigacoin = 10 BTC
So one bitcoin would actually be 0.1 gigacoin, or 100 megacoins
Either way, the bitcoin should keep being "10^8 times the smaller unit"