Why we have to "Ask Why"
When people passively accept information that is given them without asking the question why, the result is often that the person receiving the information winds up with only a cursory understanding of the subject matter. In some cases I would completely agree that the "right approach" is to only obtain the cursory overview so as to be able to quickly dive into whatever task prompted obtaining the needed information in the first place. However, it seems to be that too often this cursory understanding becomes the default level for most persons even after the use of the information becomes more critical. To put it another way, after a person gets the "minimum" information to accomplish a given task there is no further effort put into obtaining a better understanding of why "things work the way they do".
In a large enterprise (such as the one I spend my days currently) the end result of NOT asking why is that people go about their jobs doing completely unnecessary tasks simply because the default understanding is to "do it the way the person before me did it". I'll admit that this is probably easier in terms of the mental energy needed to have someone learn a set of tasks; however, I'd argue that anyone who has to complete a particular task repeatedly over the course of many months and perhaps years would benefit from a deeper understanding of what is attempting to be accomplished.
In the case of a developer the need to ask the question why, IMHO, is NOT optional. If you are a developer and you DO NOT ask "why" at least once a day there is a good chance that you are NOT a good developer. It is easy to fall into the snare of believing that getting a good requirement document means that the "why" question has already been asked and answered and you simply need to implement the technical aspects of the requirement; however, this is almost never the case (except perhaps in the most fundamental of features).
At every level of the development process all parties involved will be benefited by having a deeper understanding of asking the question why at each step along the way. In fact there is even a "method" called the 5 whys which shows how asking the question 5 successively (at least 5 times) will help to uncover the root cause. It would be good to note that as quoted by Jeff Atwood (of Coding Horror fame) if you ask why too many times the answer winds up "because there are people on the earth" which is a good indication that you may have dived too deep.
So if you are a developer don't forget to ask why, in fact in life in general it's probably a good idea to remember to ask why, just to keep things interesting.