You're absolutely right - BUT - OP's beef is with the sleezy agent not Carnival. Carnival is out thousands of dollars and has every right not to accept passage in this circumstance. OP needs to deal with the travel agent, get the money, and pay Carnival - or use other cruise lines.