I'd hesitate to say QA is always right. There's the potential that the tester has no idea what he's doing, and is testing for the right thing, but testing in the wrong way. Or is making outright factual errors. I'm thinking "Bug: 2+2 should not = 4" or "Bug: Pressed Quit button and program terminated" sorts of things. Then again, in that case he may be representative of the typical user.
in reply to Dealing with the QA guy ... (no, really)
(I remember sitting in high school almost a decade ago, learning C. Someone finished a typical "Prompt for input until valid input is received, then do something with it" exercise. I asked the writer if I could test his program for bugs for him. He agreed. I merrily proceeded to mash the keyboard like I was trying to produce a Beethoven concerto. After a series of loud beeps, the program went into an infinite loop. "Bug there, fix it", I advised. But again, probably a good representative of the typical user.)