Most tour operators know that ships sometimes don't dock. They will tell you up front during booking (if you ask) that if the ship does not port for some reason that you will be refunded any deposit. If they DON'T make this statement, don't book with them. There are plenty of other tour opertaors to choose from that will make this promise.
Carnival Cruise Lines:
Fantasy 90, Celebration 95, Victory 05, Conquest 05, Spirit 6/06, Freedom 6/08, Holiday 7/08, Victory 6/09, Valor 9/09, Dream 6/10, Splendor 8/10,Conquest 8/11,Magic 11/11,Triumph 4/12,Spirit 7/12,Freedom 11/12, Triumph 2/13 - The fire cruise
NCL Dream October 2006, RCCL Mariner OTS June 2007