IMO, first mistake was going on Carnival; second mistake was going to Mexico!
RCCL would be my recommendation.
I would not recommend going to Mexico by boat or plane or car or horseback for that matter. Well, unless you have family in the cartels...
We liked Celebrity and Regency back about a decade ago. Don't know if they are the same these days. Burmuda was fantastic. Bus tickets include the ferries and the cruise line can pack you a picnic lunch to enjoy on one of the beautiful beaches.
This is what I recollect about Carnival Cruise lines:
On Sept. 1, as tens of thousands of desperate Louisianans packed the New Orleans Superdome and convention center, the Federal Emergency Management Agency pleaded with the U.S. Military Sealift Command: The government needed 10,000 berths on full-service cruise ships, FEMA said, and it needed the deal done by noon the next day.
The hasty appeal yielded one of the most controversial contracts of the Hurricane Katrina relief operation, a $236 million agreement with Carnival Cruise Lines for three ships that now bob more than half empty in the Mississippi River and Mobile Bay. The six-month contract has come to exemplify the cost of haste that followed Katrina's strike and FEMA's lack of preparation.
Snip November 8, 2010:
Carnival Splendor Cruise Lines:
The Daily Breeze reports a seven-day Mexican Riviera cruise was sidelined today when an engine room caught fire in Mexico. The ship left Port of Long Beach on Sunday with 3,299 guests and 1,167 crew members. A fire was detected in the aft engine room at 6 a.m. Guests were told to move from their cabins to the Lido Deck, which is on the upper level and has outdoor space, she said. The ship was operating on emergency generators. The fire was extinguished by 9 a.m. but a reflash occurred. Smoke remains in the area and crew members were working on restarting one of the vessel's main generators in the forward engine room. Two guests and a crew member suffered panic attacks, but no one was physically injured. The ship is located approximately 55 miles west of Punta San Jacinto, Mexico. Sea conditions are calm and skies are clear. UPDATE: The ship is being taken to Ensenada by tug boats where passengers will be disembarked and bussed back to Long Beach.