I think that mutli-factor authentication is going to eventually be the key to this. It will end up being a pain, but until we come up with something better than passwords, it will probably be better than what we have. I know that paypal and some of the others already have one-time-password generator fobs which you can use along with your username and pin in order to login. That still doesnt' solve the forgot my pin problem...
I agree that some sort of multifactor is the fix, at least for the short term.
the problem is how do you pay for all those keyfobs, business have money to do that or have a vested interest is protecting its customers from harm especially when that harm usually means losing business so they may give them to their users.
free email services make money from advertising, i doubt yahoo will be handing out keyfobs and i doubt the majority of yahoo's free email service users will be shelling out the money for them either. so what are we to do?