I liked your IT analogy, but let me add personal experience to it. I've had MCSE's call me (primary a Linux and Cisco guy) to help them fix their Microsoft problems. I look at the problem as the problem, not as "What should I click to fix it."
I've had a lot of people ask me about problems on their cars. One recent one was a BMW. The owner was quoted $1,200 in repairs. I went over the quote, and the list of the customers complaints, and came up with a $250 quote to completely rebuild the part of the car that the dealer had quoted $1,200 for. I then dismissed everything in the quote. As the owner was told "This is essential to do today. Your car isn't safe to drive." My diagnosis was fair. "You have about a year before this becomes a problem. Bring it to me in 6 months and I'll fix those items. My estimate is approx $250, which may change a little if the parts prices change." I then proceeded to do about $200 worth of work for other items that were actually problems that weren't even addressed by the dealer quote.
I couldn't fix the airbag light, because I don't have the tool to diagnose the airbag computer. The dealer refused to address it also.
I've been working on cars since I was a kid, and know an awful lot by working on various vehicles for friends and family over the years. I've probably taken over $100k worth of work away from big shops, just because I can do it, and do it right. I don't recall any vehicle ever being brought back to me with the same problem repeated. Then again, I take the time to ensure the problem is fixed, rather than just replacing a few parts, and handing it back. It may take me an extra hour to ensure the problem is resolved, but it's worth it for the people who I do repairs for. Big shops simply don't care as much, and they get extra hours of work for the return visit.