I never pay any ATM fees. Everyone who travels abroad should have the Schwab Bank High Yield Investor Checking Account. Signing up technically means acquiring two accounts, a brokerage and one with interest checking.
I do not normally bank with Schwab. I simply transfer money into the account whenever I travel abroad, where I may be forced to use an ATM, which often exacts usurious fees. Schwab refunds all of them automatically! The beauty is Schwab imposes no minimum balances or maintenance fees, so unless I am traveling, my account has $0 in it.
I have also had an excellent customer service experience with Schwab where I used my card at a convenience store ATM in Bali. The ATM malfunctioned so that no Indonesian rupiah was disbursed, but my account was debited! Panicked, I called customer service, which instantly credited the missing US$300 to my account, without the rigmarole of an investigation or documentation!
Whether you use a fee-free account like Schwab or not, you should use an ATM to obtain cold hard cash, as the rate provided by it will be much closer to the market than through a foreign exchange bureau. If forced to use an expensive foreign exchange, such as upon arrival with cash-only taxicabs, then withdraw only the requisite amount until you can access an ATM.