I'm not sure I buy the implication that companies are somehow immune
to disagreements, politics, political factions, or occasional vicious
flames (to say nothing of nastier stuff). Corporate execs, and the
divisions they run, fight pitched battles all the time, and it's not
at all rare for customers to get caught in the crossfire.
What companies can do is keep the conflict under wraps in a way that
the free software community cannot, by virtue of its own basic nature.
Heck, management frequently tries to hide its own nasty infighting
from the employees. But, as any veteran of Thinking Machines can tell
you, conflicts still happen, and they can still do serious damage.
However, while open source can't conceal the existence of conflict,
I'd argue that open source environments can deal with it better. When
a project is being developed in a corporate setting, good software
can wind up being held hostage, or killed outright, by bad management.
In open source development, when the politics get truly pathological,
people who just want to blow it off and get work done can simply
start ignoring the blowhards and do it. The most recent example is
the egcs offshoot of gcc.