I feel you: you're kind of at the mercy of your hosts. I tend to make sure I eat something beforehand (so I won't be starving) or bring along a dish I know I can eat: either overtly as part of the meal, or covertly- nuts and beef jerky are pretty much always in my purse!
I have been caught before at a fairly grueling baby shower: Lunch was a spinach salad with berries and a very lean chicken breast. I was running late, so I hadn't eaten since dinner the night before, and we were there for 4 hours in the later afternoon. The fondant-iced cupcakes, dinner rolls, jellybean-filled favors, and candy-bar prizes were not an option. I was so miserable, even with the salad. Ugh!