I remember when I studied at the International Space University, our systems engineering teacher in one of the workshops gave us the assignment to build a satellite in a software to cover a certain set of criteria that had been given to us by a client.
I'm not going to bore you with all the details, but long story short: The criteria and use-case for the satellite provided by the client made very little sense. The teams that did their best to provide exactly what the client asked for did not receive a top grade, which was instead given to those who provided a well-written explanation to the client of why their request would not make any sense, together with an alternative suggestion for how it could be done better.
The main lesson was that to be an excellent provider of solutions that almost by definition are more complicated than what a normal client can understand themselves, one should not focus on what the client says but what the client needs.
Just reading the first quote of your post resurfaced this whole activity for me :P. It is absolutely true, and the reason why terms such as "user-centric design" has become so popular lately.
Great article, I will try to share it around a bit.
RE: Complexity in IT-Projects