I don't see any problem with caterer's making a decent profit, they haven't just turned up early on a Sunday morning, they have been out the day before buying X amount of food. Not knowing the number of people who will turn out for the event and therefore risking over ordering and subsequent losses.
Would you prefer no catering at all?
I catered at a shoot two years ago and due to a low turnout and the competitors bringing their own food,
I made a loss.
(Not bad for 6 hrs work eh?)
I would go as far as saying a BIG THANK YOU TO ALL THE CATERERS
that bother to turn up for an event which has a maximum of 150 people (more usually 50) instead of their local car boot sale where they can make real money!