We take a small amount of cash for tipping in each port, or in each city if we're traveling by land. We take 2 debit cards and 1 credit card and ALWAYS call the bank in advance.
One time, I completely forgot to call the bank, and our credit card was declined in Cozumel. I asked the clerk to hold my purchase, went outside, called the International number on the back of my card, and resolved it over the phone. Then, went back inside (with the bank rep still on the phone) and was able to complete the transaction.
We leave the country 4-5 times per year, and make an effort to call the bank in advance now.