You could price the cost in USD, and use bitcoins only as a means of transferring wealth. People would pay an amount of bitcoins calculated dynamically from the market rate, and then you'd convert the bitcoins you receive into dollars as soon as the transaction was confirmed.
I suspect that we'll begin to see web services that handle this sort of conversion automatically. Give them a Dwolla account, and they'll provide you with a Bitcoin address that will automatically dump the equivalent market rate of dollars to your Dwolla account.
How fast does the market move? If someone buys my coffee based on the posted USD/BTC conversion rate as of 12:00:00, and I convert those back into dollars at 12:00:01, how much variance am I likely to see between the original USD price and the USD amount that I finally collect?
Any service that converted between BTC and USD would probably require at least 1 confirmation - i.e. it would take 10 minutes before the USD were sent to your account.
The market value could change in that time, perhaps by 10% or more when the market is unusually volatile. However, assuming that these rises and falls average out over the long term, a web service could guarantee the quoted rate.
So the user would buy the product using $20 worth of bitcoin, which would manifest itself as $20 (minus a percentage fee) in the merchant's account within 10 minutes. Any hit (or gain) due to fluctuating exchange rates would be taken by the web service sitting in the middle. Over time the fluctuations would average out - at least that would be the hope - or at least covered by the transaction charge.
I suspect that we'll begin to see web services that handle this sort of conversion automatically. Give them a Dwolla account, and they'll provide you with a Bitcoin address that will automatically dump the equivalent market rate of dollars to your Dwolla account.