One of the biggest concerns facing bitcoin right now is becoming user-friendly. While spending bitcoins from your smartphone certainly seems cool, they're still not so universal as to replace existing concepts or technologies like physical money or credit cards.
Actually, Bitcoins are every bit as universal as credit cards. Both require network access.
My last idea actually begins with a question. I'm a bit sketchy on the specifics, how many bits are there to both the public and private key for a bitcoin address? I ask because a normal credit card style magstripe holds about 210 bits per inch on tracks 1 and 3, 75 bits per inch on track 2 and is about 3 inches long, so with the right encoding you could fit 1,485 bits of data on a standard credit card. If that's enough to hold a key, then it may be viable to create a system that "feels" no different than standard credit card transactions to an end user.
I wouldn't do it with a credit card, I'd do it with a smart card. That way you could encrypt the data on the card and use a point-of-sale terminal to type in a password to unlock it. That way, if the card is lost, you aren't automatically out all of your money. And the way it would actually work is that your smart card would contain some of your private keys (with access to reasonable amounts of your balance; not all of it). The card and/or terminal (I haven't worked out all the detailed technical aspects) would use the private key(s) on the card to sign a transaction, which the terminal would then send along to the Bitcoin network. So the terminal needs to be "smart", i.e. it is a node on the Bitcoin network or is in communication with a trusted node on the Bitcoin network (i.e. you could have 20 terminals in a supermarket, all of which use a single Bitcoin node running in the manager's office). But the card can be "dumb".