I work at a large, well known company as a CSR, though we're called Technical Support Engineers providing enterprise level support for a high end Unix/Linux product.
I'm very well trained, very experienced, and could fix the problems in the field if I wanted to. I took a job answering phones because I hate administration, the job pays well (more than $8 an hour), and I have access to a wide range of computer resources (Sun systems, IBM boxes, storage and networking appliances) with ample time to investigate unique issues as produced by customers.
Working in a higher end Enterprise support level, I feel thankful that many of the people I talk to are skilled and experienced system administrators. No one calls in and asks why their CD ROM drive doesn't close when they have a coffee cup stuck in it.
But I can tell you this, I would estimate that approximately 65% of the calls/cases I take are issues caused by customer action. And in the case of data corruption, that figure approaches 90%.
The fundamental idea is that when our software was designed (and I believe this is true for any software that is produced for high end data storage and maintenance) data integrity is key. That is the part that is over-engineered. Simplicity and ease of use often suffer as a result, leading customers to have a bigger and better gun to shot themselves in the foot with.
In the end, as a support technician, it is my job in data integrity issues to understand the COMPLETE picture, and often a support issue begins after the customer tries to do something with the software. We're like detectives, and as we encounter more and more customers that hide things from us (out of embarassment) we become more suspicious of customers in general.
#1 rule when calling support, be completely honest. EVERYONE had wiped out their MBR, or forgotten what directory they were in at some point. A support individual can help you fix the problem must faster and much more accurately if you tell them everything.