This seems to be an elusive subject, but I think I have a solid idea here. One of the biggest issues the prevent making bitcoins "easy" are the addresses. Online payments don't suffer from this, as there are buttons with the addresses programmed in, and at the very least, copy-paste.
It also got me thinking about current real-life payments. Now, when I pay with my debit card, the payee (the store) initiates the transaction and pulls the funds from my account. This is where the first really big problem comes along. Bitcoin is fundamentally different in the payer initiates the transaction and sends money to the payee, which is really more like a cash transaction. Since bitcoin has a disadvantage by being electronic, there has to be some way to verify a payment.
So, with this in mind, I came up with two hurdles preventing real life payments: Easy acquisition of bitcoin addresses, and verification.
Tackling the first issue:
By now, everyone's heard of Google Wallet. Why can't bitcoins be similar? NFC is wonderful technology right now, and bound to grow more abundant in the future. Even a passive NFC tag is capable of storing a full bitcoin address, easily. So, broadcast the address and payment amount in an active Point-of-Sale device then allow other devices to read the tag. Then, software on the other device (a smartphone and an app, for this example), requests that the payment amount from the tag be sent to the address in the tag. Funds sent, and the whole processes is even faster than a debit card! (PINs and other security measures can be added on for additional security. For practical reasons, there wouldn't be a wallet stored on the phone)
Now the hard part: Verification. Once again, online payments are currently fine since they almost ALWAYS have to be shipped, and the payee simply doesn't ship if the payment doesn't come through. In real life, the same rule applies, but where the ~1hour delay is acceptable for online purchases, it wouldn't do any good to wait in line for hour just to get your coffee. So, the transaction fee should apply here to speed up the transaction. We also don't really need to wait for it to be check thoroughly before allowing small purchases; only more expensive purchases require this type of verification.
Now, when the phone reads the payee address and payment amount from the POS, it gets the payers address and sends that to the POS. Now the POS knows who the payment is from, and can monitor the owner's bitcoin account for that payment at that amount. When it sees it we know the payment has gone through.
It is a bit complicated on the infrastructure side, and it's late right now so I probably haven't explained it in the best way. But I'm happy to answer any questions. Other than that, comments?