That's the problem right there. His buddy is still getting the meal and your hubby is happy. It's never going to sink in if it always works out.
My thoughts are that you have 3 choices:
1) always make a bit extra just in case, and you can use any leftovers for lunch.
2) appologize profusely in front of hubby and guest(s) when there isn't enough food for the unannounced, or short notice buddy, hubby might get the hint then.
3) only fix meals that require less time to make so that 3 hours would be more than enough time to prepare a meal if guests have been added.
Bookmarks