Last year, when I first opened my US bank account, I was hit with 3 X $35 in overdraft fees. It turned out that most customers are enrolled in a mandatory overdraft protection "service" here. It extends to ATM withdrawals and debit transactions, unlike in Canada where these services only kick in for paper cheques.
So, when I took money out of the ATM and when I spent $5 at Starbucks, I was actually charged these fees. Stupid me for thinking that when there was no money available, the ATM wouldn't give me money (there was still a hold on my first deposit). At the very least, a warning message to the effect of "this transaction will incur a $35 fee" should have been presented. In Canada we get warnings of this sort all the time, e.g. when you use a different banks ATM and they disclose the fee.
I called Bank of America to decline this service recently, just in case. However, you cannot decline this "courtesy service". I doubt many people would view a $40 coffee as a courtesy, especially when they could just choose to use cash. Covering a rent cheque, ok, charging for ATM transactions, not ok.
There is hope -- the Federal Reserve is considering mandatory opt-out availability. Opt-in would be better, but this is a good step.