They think they know the best way to do something, not realizing the fact that as someone creating the code, you have probably seen similar problems numerous times, and have a far better way of solving the problem.
I am constantly asked for a new excel to upload data. I refuse these days, (they are far too error prone). Instead I build a web form instead, with JavaScript emulating whatever usability features they required Excel for (usually just a bit of copy pasting). Last time I did showed the user what I had come up with the response was "this is shit". I asked her what it was missing, sorted the JavaScript, and two days later she asked if I could replace another of her Excels with a similar form.
If you are working at a very high level of abstraction (compilers, programming languages, protocols), there is infinite potential for your work, and its purpose is going to be determined by the principles of its users. Their principles may be different from your own, possibly even evil.
I do think standing for principles that are for the good of humanity is something worth doing as an individual, regardless of the technological abstraction you work on. And if you can build or promote your technology using those principles, then the both will be stronger for it.