this is also something to watch out for with ATMs abroad, too--even with ATMs that dispense local currency, and even though there's not much that can be done to avoid it.
you might expect these sorts of shenanigans if you're getting your home currency at a foreign bank's ATM, but this happened to me recently while withdrawing mexican pesos from an ATM in mexico with a US debit card.
after recognizing a US debit card and without asking or notifying me, the ATM's bank apparently conducted the transaction in dollars it later claimed it was buying at some awful rate and (on top of that) passing along *their* foreign transaction fee to me--all while only showing only the amounts you're taking out in local currency on the screen. i don't remember the name of the bank anymore, but it was not a small or shady-looking ATM in a small town, either.
when you get home or check online, you see a bigger charge than you made and find out from your bank that the ATM charged you for the local currency you took out **in USD**. so you pay for the foreign bank to first "buy" the USD it charges to your bank at lousy rates in addition to the transaction fee and paying the foreign bank's foreign transaction fee. and if you have a crappy bank at home, your bank may still have charge you a foreign transaction fee on top of that (because it's a foreign bank, even though it's in dollars) and/or not refund the ATM surcharge. but even if they *do* refund the surcharge, i'm not aware of any banks that automatically refund you for a foreign ATM's use of usurious foreign exchange rates...
i was lucky to have saved my ATM receipts in this case, and a phone call and scanning/emailing my receipts to my bank fixed it in a jiffy, saving me more than $75 in bogus and hidden fees charged to take out only ~$500 in mexican pesos to pay for scuba diving in cash (on top of their usual ATM fee refund), which i had ironically done to avoid the dive shop's 5% surcharge for accepting credit card payments!