As mentioned, nearly ALL USA ATM cards have fees ... plus the Mexican bank will tack on another fee of their own. But it's a FLAT RATE fee ... and this is why it's best to withdraw large amounts at one time. Usually about $3 per withdrawal plus whatever the Mex. bank charges. (yes, it's a racket!)
So, Fee is the same if you withdraw $50 or $500.
Credit Card. Best to just shop around the big companies, see who does NOT charge foreign transaction fees. My Citi master card DOES charge foreign fees, as does my Discover and Well's Fargo Visa.
Banks change policy on this a lot so let us know what you find out ... if Capital One do not charge then I'll sign up for one of those next trip!
There are several who DO NOT charge ... just can't name them.
In Mexico it's a crap shoot regards ATM cards. Some cards work at ATM's, some don't. I found one Mexican bank (Bancomer I think) that worked with one of my ATM cards and I just would go that same bank every time.
Fees are killer. Nothing to be done that I know of ... aside from dealing with locals who may want to buy CASH dollars and will pay a good rate. (some Pemex stations will change dollars ...no fees, sometimes OK rate.)
At fancy tourist type business's they usually accept credit cards but many smaller business's will not accept cards, small Hotels and such. The FEES charged are TOO HIGH so they boycott these banks.
But on my last trip I found that now more Mex. business's are again accepting CC whereas a few years ago not many would. YMMV.