Here's what we need: Merchants need to be able to allow customers to pay in bitcoin without ever having to have bitcoin. Here is how it would work:
A merchant would get an account with an exchange. He would put a little bitcoin icon on his website. The customer would see it and click the button.
Clicking the button would query the exchange for the current price and calculate a price in bitcoins, possibly with a markup, and an address to send them to. The customer would then send the coins. The exchange would then sell the coins and credit the merchant, minus a small fee. The merchant would never at any point own a bitcoin.
Things to think about: when are the bitcoins sold? The price fluctuates. The exchange has to quote a price to the customer and then stand by it. If it sells at that point it can be sure that it won't lose money when the price suddenly goes up. However that is risky for the exchange because it has to sell some of its bitcoins simply in response to someone clicking on a button. Someone could click the button hundreds of times, forcing a massive sell-off. Not good.
Perhaps the exchange should wait until the money has been sent, when there are 0 confirmations. In this case it is still vulnerable to attacks, but they would have to be more sophisticated, involving broadcasting false transactions. Additionally now the quote will be slightly out of date. There is a risk of the exchange losing money due to rate changes, though of course it could gain as well.
The next option is waiting for confirmation before selling the coins. This makes it harder/impossible to manipulate the market but exposes the exchange to some risk if the currency fluctuates.
For an exchange this could be a major source of revenue. It would get money from the merchant. It would create more demand for people to buy bitcoins on exchanges so it would get some of that traffic (all exchanges would benefit). There would be some risk due to fluctuating exchange rates but if that were a concern it could charge a little bit of a markup, like maybe just by quoting a price 2% higher than it should (so if the item should cost 1 btc the customer would have to pay 1.02 and the merchant would only get 1 btc worth of usd (well actually a little less, because he is paying a fee too).
Actually another way that this could work is that there would be no merchant fee. No merchant fee? Merchants would love that. It means pushing the cost onto the bitcoin consumer. I think that nearly all of us would pay 1% more if we could pay in bitcoin.