Author of DiabloMiner and BitcoinTalk forum mod here.
You could potentially be asking the wrong question. This has been brought up in discussion in #bitcoin-dev on Freenode a few dozen times, and eventually it comes down to the fact that having to wait 30 minutes or more for a transaction to clear as valid (vs several seconds on a credit card at a working terminal) will hinder Bitcoin adoption in the wild.
A lot of people predict the rise of Bitcoin banks, where the only people that transact with the chain primarily will be banks and large businesses, and everyone else will have Bitcoin bank cards that they use at terminals, or Bitcoin bank account numbers that transact instantly.
So, if/when this happens, you won't see 1TB of transactions (which, by the way, I suspect is rather high; several million transactions a day would not be 1TB, although it'd be in the GBs), you'll see roughly the traffic we have now as banks and merchants settle their balances with each other periodically.
There is also the problem that the client does not currently compress the chain while storing it on disk. Several TB of data could be several hundred GB of data if it compresses well, and that is very easy to store on today's conventional drives. Someone should look into adding lrzip support (better than LZMA, written by Con Kolivas, the guy behind the BFS kernel patch and the cgminer Bitcoin GPU miner) to the mainline client.