This scalability problem gets discussed a lot. IMHO the best solution is a combination of off-chain transactions and micropayment channels.
Off-chain transactions are done by third parties who issue a virtual currency backed with Bitcoins. For example, MtGox customers can send each other bitcoins entirely within the site, so the actual in-chain transaction only has to take place when withdrawing to your local Bitcoin-Qt wallet. These servers can be decentralized, for example using multisig and Open-Transactions. Ripple would work too.
Micropayment channels would allow two parties to compress any number of small payments into a single transaction. Right now Satoshi Dice is the biggest consumer of block size, and their business model would work well with micropayment channels. More info here:
http://www.youtube.com/watch?v=mD4L7xDNCmAThe analogy I like to use is: Bitcoin doesn't need to replace VISA, it just needs to replace the Treasury and Federal Reserve.