In the last couple of years I can think of numerous incidents on various lines where unexpected mechanical problems caused itinerary changes.
Also some cases where it was necessary for the ships to go into dry dock for a month or more before they could correct the problems.
In all instances they attempted to fix the problems "on the fly". Flying in engineers, mechanics and parts to different ports. Sometimes the fix was possible and quick, sometimes it wasn't.
I've been stuck in airports overnight because of mechanical problems... where they attempted a fix first, then they tried to find another airplane to replace the problem airplane. When one couldn't be found, we were delayed until the next day.
They payed for a hotel room, and a breakfast voucher.. NO other compensation.
That's why I always recommend cruisers fly in to their departure ports a day early. You never know what may be delay you.
My point..... it's not just Carnival. That doesn't make it any easier for those who were affected.. but it is fact.