carnival lists the available shore excursions and prices for your cruise...go to their site and fill out your funpass info, it will make boarding easier. I agree if you are uneasy with a port to book with the ship.
while your there look for other local companies which may offer direct booking for a little cheaper than the ships tour for the next time you visit, i allways search for local tour companies online...just type "(name of island or city) followed by activities,tours,excursions,rentals,snorkel"
and see what pops up
then if you feel comfortable with it you can do it yourself.
I also have heard from tablemates that hiring a cab for a personal tour can be a good affordable alternative, one couple got a horsedrawn carrage at the end of a taxi line in cozumel, $35 bucks and he spoke decent english, showed them churchs, shopping, a local resturaunt for a snack, and neighborhood sites and gave them a 3 hour tour.
I would just make sure before i got in, that he spoke my language well and could tell me a few places worth visiting, and make sure how long we would have his services.
all legal taxis in Jamaica have red tags on the front of thier cab, most ports have an official taxi area near all the security of the tourist shops at the pier, with official regulation, which discourages horror stories like you mentioned. yeah, i'd beware of the cabbie in the alley goin: pssssttt hey meesta you need a ride or something? unless you walk, rent a car or book a tour with the ship you have to use a cab to see the island. Most of them are happy to be earning a good buck showing off thier island to you.