I completely understand the frustration of the OP. That is a lot of money.
Besides that, if it happens every week then you would think NCL would know how to prevent this from happening repeatedly.
Under "Cruise Gripes" I started a topic called "What's the Catch?" that talks about sales people and companies that constantly find ways to deny their own responsibility for anything that goes wrong.
Yes - it is the passenger's responsibility - because NCL says so - but who has more experience in these matters, the customer or the cruise line? The cruise line does, of course, and as the product provider they would be wise to take some responsibility.
If this was an obscure nationality visa - like if the woman was from Macau or the Cook Islands I could excuse NCL for saying " we can't know every contingency - it is up to the guest."
But this was a Mexican national traveling with (and married to) a U.S. citizen. That has got to be a pretty common thing. How sad.