I think there are many misunderstandings about a 51% attack. There isn't much you stand to gain by using 51% of the hashing power to double spend. Let me explain...
There can only be one entity at a time who is in a position to do a 51% attack. It's not like everyone you transact with is suddenly going to burn you with a double spend. All the honest miners will focus their efforts on identifying who this 51% attacker is and not doing trades with them. Once it's known the network is under a 51% attack, the honest nodes will quickly start blacklisting addresses that performed double spends and limit the attackers ability to spend his coins. He would essentially be destroying all his coins.
1) You won't have any warning a 51% attack is in progress until after the fact. The attacker will build an "attack chain" in private. With 51% of the hashing power it is a mathematical certainty that eventually his chain will be longer than the legit chain at which point he publishes it and it rewrites the prior transaction.
2) Even if you did blacklist an address it is unlikely the entire mining community would do so by unanimously. If there was a "blacklisted" address involved in a transaction with a 5% fee you honestly think no miner or mining pool would every accept that from now till the end of time?
3) Preventing blacklisting would be trivial. You simply make sure the address never has more than the double spend. i.e I have address X w/ 10K BTC. I double spend it via two transactions A (involving 10K BTC) and B (involving 10K BTC). After the double spend is complete address X has a value of 0 BTC. Given you can generate an infinite number of addresses for free what value is there is blacklisting an 0 value address?
The main misunderstanding is to think that the only reason to carry out a hashrate attack is to profit from a double-spend. More likely a hashrate attack will be carried out by someone who wants to destroy Bitcoin, or at least to profit from short-selling bitcoins. Generally, mechanisms to protect against profitable double spending will amplify the chaos that ensues during such an attack, making us more vulnerable to a malicious attack.
Also, once this starts happening the bitcoin rate will probably drop, and depending on the attack miners will have their blocks rejected so it won't be profitable. Miners will quit and then it will be even easier to continue the hashrate attack. And since the difficulty targeting algorithm doesn't handle sudden drops in hashrate well we have a whole new set of problems.
I believe this is the most likely. The huge cost of amassing that much hashing power means it would likely always be more profitable to use that hashing power for "good". Getting away w/ double spend would be difficult because any shipped products (or transfered fiat) can be traced. Even if the double spend could go untracable there is going to be meatspace trails.
So IMHO the only reason to 51% the network is to kill it. A currency has value only if its value can be trusted. Bitcoins which can disappear at the will of an attacker have no value. The collapsing price, falling hashrate, and reluctance of merchants to accept them after a 51% attack will kill Bitcoin.