It's not something that started since 9-11.
I sailed the Sensation back in '94 and we stopped at St.Martin, then St. Thomas and had to clear Immigration before we could get off the ship.
It's a law that if you sail on a ship that first stops at a FOREIGN port ( say Bahamas or St. Martin ) and then stops at a U.S. port, (say St. Thomas ) then you have to clear Immigration--not Customs. Immigration deals with people. Customs deals with things.
When the ship docks and the officials come aboard, they are in control--not the cruiseline. When they get through, they then allow the ship to start disembarking the passengers.
usually what holds everything up is that some think they don't have to go if their not getting off the ship, they think they can just skip it--not so-- they want everyone to proceed through--as someone said, there's always some who think the rules don't apply to them.
There's reasons that the ship can't just make Nassua or wherever their last stop instead of first--other ships taking up dock space, etc. Assigned docking spaces at certain days, etc. Cargo ships may be coming at certain days, etc. These foreign ports have their ways and regulations and the Cruise lines have to follow them. It's not like you can just sail up to a foreign port and say we want to tie up for the day.
It may seem stupid and may be stupid but the cruiselines have to follow the laws.