As someone who tended bar for years, I agree that the tipping culture is out of control, especially since a lot of people in the industry think they are entitled to big tips rather than working for them. Granted, a lot of that comes from being jaded from running your ass off for customers who jack you on the tip.
I still never tip less than 20% unless the service is absolutely awful (it is dumb to hold bad food against the server since they aren't the ones cooking your food), and on small bills, I will always tip more. I never tip less than 5 bucks if I sit down somewhere and get food, so if I go somewhere quick for lunch and my bill is 12 bucks, I am still giving 5 bucks.
All of that aside, if a tip like on the cruise is automatic, it definitely should be told to you ahead of time, not snuck in after the fact.