It's nothing new unfortunately. Going with prepaid GSM & unlocked phones is still the least expensive option. There's really no way around at least some of the high costs for roaming globally if you stick with a U.S. carrier. With ATT for example, the service will hover around $2-3/minute.

Sat phones are prohibitively expensive too, and require clear line of sight to the heavens which makes indoor calling not very nice. Using a basic quad band GSM phone gives the most bang for the buck since they're so ubiquitous and work over the largest coverage area globally with the biggest variety of carriers.

Cruise ships are special exception that can be crazy expensive, since part of the time you roam away from traditional cellular sites located in land. This often means roaming rates that can even make traditional international cellular roaming rates look good by comparison. Quite often you have to suck up the additional cost since pre-paid might not work depending on where you are at/ships offerings. Also, the cost of roaming on Mexican or Caribbean cruises may be slightly different than those in the Med, FWIW. There was at least one case in the news last year where someone who hadn't even left the dock in Miami incurred a $17K bill for cellular data use while onboard ;(.

There are some older discussions on this topic like this one-
http://www.prepaidgsm.net/forum/international-gsm-prepaid-cards/3233-united-mobile-cruise-ship.html

Skype or a VoIP over wifi service, if wifi is offered on a particular cruise ship, might be one of the options you should look into if you require talk time that is cost prohibitive.