Mark Bittman recently posted about his bad experience at a restaurant where he found plastic in his corn soup. He asked readers what he should have done differently and wrote a follow-up post, noting that he didn't think it right to reveal which restaurant it was. I tend to agree that for one particular mistake like this that it's not fair to ruin the restaurant's reputation.
But I often wonder when it's appropriate to make known any complaint I have with a restaurant. I tend to avoid sending back my meal unless it's utterly inedible (and that has rarely happened) for fear that the chef will be offended among other reasons. But perhaps it's reasonable to share any complaints with the server or with a manager at the end of the meal — a good restaurant will ask how everything was anyway. If you don't plan on going back then there's little at stake and just maybe, other diners would be spared similar problems. This situation came up at a recent bad dinner I had at SD26 and though the waiter did stop by to ask how our meal was, we didn't offer our true thoughts. In retrospect, I do wish we had at least made it known that we weren't satisfied.
And once I've spoken up, what do I expect a restaurant to do? If it's after the fact and the problem can't be corrected, I do think it's right for the restaurant to offer to comp some portion of the meal. The mere act of raising a complaint is an opportunity for the establishment to show that, no matter what happened, it still knows how to provide exemplary service.