Part of the problem is that the cruise lines do too good a job at pampering their customers during the cruise! After a few days of this special treatment, some people come to expect it.
After a really great Caribbean cruise a few years ago, we were on an American Airlines flight from Ft. Lauderdale to Dallas. Unfortunately, the flight was going to arrive about 40 minutes late, which was going to mess up a lot of connections. The poor flight attendants, who had nothing to do with the delay, were put through the proverbial wringer by many passengers who were acting like spoiled brats. The pilot even came on the intercom to ask the passengers to give the cabin crew a break.
During the flight, I got up to stretch and go to the restroom. While waiting, I began a conversation with one of the flight attendants and explained that most of the passengers had just been on a cruise during which every whim was taken care of for them. After being spoiled and pampered for a week, some of them forget they were back in the "real world" and were getting used to fending for themselves once again. I thanked her for her efforts and commiserated a bit. After a minute or so, she smiled and thanked me for the kind words. Once I had returned to my seat, she came by and treated my wife and me to a couple of drinks "on the house." On the way off the plane, all of the attendants made a point of thanking me.
I do think that some of the boorish behavior is just natural for some people. Others believe that paying for the cruise (or plane ticket) allows them to expect special treatment, forgetting that everyone else has also paid for the same treatment. As a teacher, I have come to expect being taken for granted. But I work with children and young adults. I don't think I could work very long on a cruise line. It would be tough for me not to remind some people in these situations to behave civilly, like adults.