there's no way to avoid offending them while also acting rationally. It becomes necessary to choose.
Really? Have you tried, maybe, just not pointing out the weaknesses in their arguments? Mightn't that be the rational thing to do? Just a polite smile and nod, or a gentle, "Have you considered some alternative?" Or even, "You may well be right." (This is true of pretty much any non-contradictory statement.) Or there are many different ways to argue with someone without being confrontational. Asking curious-sounding questions works fairly well.
It's generally easy to recognize how well a person will react to an argument against him. If you have basic people skills, you'll be able to understand what type of argument/approach will communicate your point effectively, and when you simply don't have a chance. The idea that it's necessary to offend people to act rationally seems completely absurd (at least in this context). If it's going to offend them, it's going to accomplish the opposite of your goal, so, rationally, you shouldn't do it.
This whole discussion reminds me of the Dave Barry quote that may well have been used earlier on this site:
"I argue very well. Ask any of my remaining friends. I can win an argument on any topic, against any opponent. People know this, and steer clear of me at parties. Often, as a sign of their great respect, they don't even invite me."
This. Is. Not. Winning.
A currently existing social norm basically says that everyone has the right to an opinion on anything, no matter how little they happen to know about the subject.
But what if we had a social norm saying that by default, people do not have the right to an opinion on anything? To earn such a right, they ought to have familiarized themselves on the topic. The familiarization wouldn't necessarily have to be anything very deep, but on the topic of e.g. controversial political issues, they'd have to have read at least a few books' worth of material discussing the question (preferrably material from both sides of the political fence). In scientific questions where one needed more advanced knowledge, you ought to at least have studied the field somewhat. Extensive personal experience on a subject would also be a way to become qualified, even if you hadn't studied the issue academically.
The purpose of this would be to enforce epistemic hygiene. Conversations on things such as public policy are frequently overwhelmed by loud declarations of opinion from people who, quite honestly, don't know anything on the subject they have a strong opinion on. If we had in place a social norm demanding an adequate amount of background knowledge on the topic before anyone voiced an opinion they expected to be taken seriously, the signal/noise ratio might be somewhat improved. This kind of a social norm does seem to already be somewhat in place in many scientific communities, but it'd do good to spread it to the general public.
At the same time, there are several caveats. As I am myself a strong advocate on freedom of speech, I find it important to note that this must remain a *social* norm, not a government-advocated one or anything that is in any way codified into law. Also, the standards must not be set *too* high - even amateurs should be able to engage in the conversation, provided that they know at least the basics. Likewise, one must be careful that the principle isn't abused, with "you don't have a right to have an opinion on this" being a generic argument used to dismiss any opposing claims.