We spent less than 30 minutes in Nassau before walking back to the ship. I think Carnival should just skip the Bahamas. The only people who seemed to have a good time were the people who had paid for the very expensive Atlantis water-park excursion.
I had been told that St. Thomas was boring, but I actually found it beautiful and the snorkeling was good. (I was supposed to scuba, but couldn't deal with it.) It's cheesy, but we actually enjoyed our drinks and Mexican food at Senor Frog's!
We did not need an excursion at all. We wandered around the forts and Old Town and then took the long cab ride to the Bacardi distillery to meet up with some friends who were coincidentally in Puerto Rico the same week. The tour was informative -- and you get free drink coupons at the end. We loved it so much that when we booked our second cruise we made sure it included San Juan on the itinerary.