OK, I’m going to approach this from the point of view of someone who has an extremely picky sister-in-law.
Many social interactions center around food. As a host, you want to please your guests. As a guest, you don’t want to burden your host. Therein the problem lies. When it comes to friends and family, layer on the “food is love” part, and it becomes a minefield.
If it’s a meal with people you don’t know very well (a business meal, for example), choose from the menu what you think will work. If it arrives and you can’t stand it, do your best to move things around the plate so it appears you are eating. If someone says, “You’ve hardly eaten anything!” (and how rude is that, but people do it), respond, “It’s delicious, but i just can’t eat another bite.” If you want to be really convincing, ask for a doggie bag.
For a social get-together with work colleagues or the like, I’d say go ahead and ask about the restaurant. You can always say you’re asking because you have food sensitivities.
At a dinner party at someone’s house, if the host doesn’t ask in advance about any dietary restrictions, you have to go with the “business meal” plan. If the host asks, you can present any restriction you choose, but only in terms of what you can or can’t “have,” not what you will or won’t eat. “I can only have plain, broiled chicken.”
If you’re dining with family or friends who know you well, be up front about your preferences, but do so in a way that either relieves them of the burden of accommodating you or gives them a way to do so gracefully. You: “Oh, you’re having liver and onions? Ha-ha! You know me! I’ll bring my special tuna salad to share.”
Back to the picky SIL…she’s completely passive-aggresive about her food preferences. She won’t say what she wants but expects to be accommodated. If we give it our best guess but fall short, her plate will be untouched.
Rude. Very rude.