There's one big exception to our question: transactions in foreign countries. If you travel outside of the United States, you might not be able to avoid bank fees, because you'll likely pay to have one currency converted to another if you make purchases with your credit card.
Using cash is always an option; just be sure you have enough currency when you enter the country so can avoid ATMs once you arrive. And unless your bank offers foreign currency exchange services free with your account, expect to a pay small fee to exchange your money.
You can also purchase other resources, like traveler's checks, that you can turn into cash after you get to your destination. Some clubs, such as AAA, even offer traveler's checks as a free service for their members [source: AAA]. Pre-paid debit cards, such as Visa TravelMoney, are another option that you can use internationally [source: Visa].
Compare all of the different currency options before your trip, and don't be surprised if cash actually turns out to be your best bet.