text: To be honest there is no other way than telling them, unless you have a mutual friend who you think might do better.  I find with things like this it is not what you're saying, but the way you say it.  If someone has spent hours and hours and hours preparing food and then someone comes in and says 'I don't want to eat the vast majority of what you've prepared.' then that can for obvious reasons be insulting.  However if you let people know, with as much notice as you can give and say it on a non preaching way, just with simple honesty, then most people would appreciate that.  For me, as a host, one of the key things to a good party is making sure everyone who visits feels comfortable and able to enjoy themselves!