I think the problem is the way they get their money. Instead of charging service fees that reflect their cost of business, some fees are set exorbitantly over the cost of providing the service (like a $20 service fee anytime "overdraft protection" is used). And these fees are paid by those that can least afford them. The guy that keeps $10,000 in his account gets free checking, and never gets dinged by overdraft fees. But he's being used by the bank too, by getting 0% interest on his checking account so it becomes a free loan to the bank.
No, you need to go one step deeper all the way back to you the consumer. Banks provide a service. They could charge a person $20/month
for this service and probably be ok financially if they could get customers but you the consumer will go to the bank across the street that
gives free checking instead. You pay for free checking with overdraft fees and lost interest just like you pay for free broadcast tv with commercials.
They aren't being "used" by the bank. They are paying the bank to use their services and most people would rather lose a little interest or have the
occasional fee than have a reoccuring monthly fee. I understand exactly how a bank charges me and I have no problems with it.
If you don't like their business model, find a bank, credit union, etc... that has a business model and fee structure you like.