I just had a thought, cruise lines should offer a drink package that you can choose how many days you want to be on it.  Ie: if you know your in port 3 days of your 7, buy a drink package for 4 days?  Does that not make sense?