Another approach is to have "trusted sources" which are Bitcoin banks/ewallets. If your customer is using a Bitcoin bank like eWallet to send a payment, you can pretty much assume that the transaction is valid based on the source, without verification.
Either way, this is merely a short term problem. As more Bitcoin infrastructure springs up (more banks, more verification hubs, more incentive on transaction fees rather than mining, when mining gets too expensive) then these problems will be organically mitigated. If the Bitcoin infrastructure were to remain the way it is now forever, it won't scale for many other reasons (like requiring peers' wallets to store significant transaction history that could grow at the rate of gigabytes per hour with "real world" volume).
Isn't transaction verification tied to block generation, and isn't block generation limited to about 1 every 10 minutes?
From how I understand it, verification involves:
1. Confirming the privately-signed transaction against the public key of the source wallet (transactions not forged).
2. Confirming against the historical transaction chain that the coins actually belong to the source wallet (coins not forged).
3. Passing the verified transaction along to other peers.
Prior to being included in a block, it's entirely possible for the payer to issue the same money to multiple recipients. Once it's in, it's assured that only one is included, and others are therefore invalid. So it's in recipients' best interests to wait for a few blocks before totally accepting something as "paid".
edit: When someone sends you a transaction, it registers more or less immediately. It is only the confirmations in the blockchain (that happen every ~10 minutes) that give you confidence that the coins were not double spent.
There is no reason there couldn't be a law that says "it is illegal to attempt to defraud merchants by trying to double spend bitcoin."
From a technical standpoint, if you send me a payment and I have no reason to mistrust you (similar to my accepting a check for payment), seeing the payment show up in my account immediately is pretty satisfactory.
Further if it becomes a problem, services similar to clearcoin could pop up; allowing users to 'store' coins in a trusted third party, like a generalized escrow-service that companies could trust.
So unlike clearcoin which has coins transfered per-transaction, they might offer a service where you can just store your coins there, and business will trust unconfirmed transactions from clearcoin; thus they wouldn't have to trust you.
Really though, I doubt it will become any more of a problem than bad checks are.
If bitcoin transactions are only trustworthy in jurisdictions with laws governing such transactions (i.e., none), it is safer and more convenient to simply use the local currency. And of course, governments will not voluntarily protect transactions in competing currencies.
Bad checks are an enormous problem. One of the reasons that merchants favor credit cards, despite the high transaction fees, is that the incidence of non-payment fraud is both lower and less costly. If Bitcoin is susceptable to nonpayment fraud, it is a non-starter as far as widespread adoption is concerned.
There's a big reason - government hostility to bitcoin.
But that doesn't matter, government is not the only entity that can resolve conflicts. Online reputation management, trusted third-party processors (escrow), the mob, and insurance companies can all reduce fraud to manageable size.
Intermediaries kind of defeat part of the purpose of a decentralized system, but very very importantly, they're optional with such a system.