It may be insane. But it's a common practice for credit cards to charge 3% on foreign currency transactions, where the puchase is rung up in local currency and appears on your statement in US Dollars. If 3% isn't insane, at least seems excessive.
Before a recent trip to Europe, I called the Citibank and First USA (now Chase). They both charged 3%. (The way it worked with Cittbank and First USA is that Visa and MasterCard charged 1%, and the issuing bank charged 2%, for a total of 3%.) American Express only charged 2%, so I used American Express as much as possible.
By the way, before anyone takes the advice to use traveler's checks, keep in mind that it's common to lose far more than 3% when cashing them for a foreign currency. There's a spread between the "buy" and "sell" price for foreign currency exchanges, and there's often a flat fee on top of that.
All this isn't an issue for the
DCL shipboard accounts or for transactions in the US ports -- St. Thomas, USVI, and Key West, FL. In these cases, the US Dollar is the official currency.
In other ports, prices may be marked in dollars, which are valid if you pay cash. But if you pay by credit card, you'll want to ask if the transaction is in US Dollars or in local currency. If it's local currency, your credit card statement may end up showing a higher price than you expected to pay.