I work for a law firm. I think contingency fees are pretty fair (they're usually 33% here, but we'll lower the price if the client needs a break, or if they send us other clients, etc - just like any other business, really).
If the prospective client doesn't like the rate, which they agree in writing to on the first day, they are more then welcome to find another attorney who charges less (very unlikely) or argue their own case.
It is worth noting that you are much more likely to get more money with a lawyer, after the contigency fee is taken into account, then you are on your own.
As far as $500 per hour... Well, we don't charge anywhere near that... I think it's about $200 per hour and if the client isn't some sort of know-it-all-******* who doesn't listen to us, tries to do everything on his own, and screws everthing up (which we must then fix), the fees don't get outrageous.
The fees also don't get outrageous if the client isn't outrageous in his/her expectations. As in divorce cases. They would be pretty quick and simple if the dolts didn't hold grudges and want to argue every last detail, down to 15 extra minutes of child visitation.