Rather than blaming the customer, maybe it's your expectations that need to change.
Allow me to explain. As I'm sure we've all seen, people don't understand technology. When people don't understand something, they'll at least try to understand it, or assume the worst, but usually these assumptions are wrong, because well... technology is far from predictable. As a certified technician, a computer business owner, and someone who has been working with computers since 5 years old, I still don't know everything. Sometimes computer repair involves troubleshooting. If I don't know something, I've been fixing computers and electronics long enough that I know exactly where to find my answers.
When people try to make sense of things that don't make sense, they'll tell their friends, and their friends will think "oh that makes sense now" even though its totally wrong. Or perhaps they were told the right answer to begin with but it gets jumbled up and they end up telling a friend something completely different. If you've ever played the game telephone, you'll know what I mean. I don't think these customers are exactly ignorant, they have reason for thinking what they thought. I'm not justifying a customer coming in and telling you that what you are doing is wrong and you don't know what you are talking about--frankly I don't think anyone should treat another person that way. Ive taught myself and my techs to be respectful to anyone customer.
We as a comonay are here not just to fix the computer or technical roadblock, but to educate and advise the customer. My goal is for customers to walk out of my shop with a repaired computer and new knowledge to help them deal with technology a little better. We also tell our customers, if they have any quick questions, feel free to call or email us. That's what really sets us apart from our competition.