One of the main reasons to charge for a consultation is that they are an expert in the feild(s) that they perform in and they value their time. They don't want to waste their time with people who are just shopping around for prices or are just in the planning process.
Some estimate quotations depending on how detailed can take several hours to complete when carefully considering all of the components and time that go into plan a project correctly.
With today's fuel prices, there's no wonder why contractors are charging for consultations. Say for instance they drive a diesel powered truck, as a lot of them do. And they have to drive 30 minutes for a consultation, meet with the potential prospect to discuss the project, then drive 30 minutes back to the office. Not to mention sometimes driving to material suppliers to price out building materials and the maintenance on the truck such as oil changes, tires, wear and tare, etc. This can add up quick! All the while the prospect may have no interest in even hiring them or may be just shopping around.
While a random contractor who doesn't value yours' or their time may come out to an onsite appointment with out knowing little or anything about the project just to try and turn on "the charm" hoping they get hired...
A true expert in their field should be able to get compensated for their time and knowledge of the project when talking to a potential client, providing professional input and ideas that will ensure that the project is built correctly, provide the homeowner with knowledge and piece of mind knowing that you the contractor know what you're doing.
Why should a professianal contractor have to endure all of these things time and time again, not to get hired?
This should be common knowledge of a contractor.
Most people wouldn't be willing to use their own fuel, vehicle, give up time with their family, or time enjoying their favorite past time, time and time again on their free time and using their personal finances while not getting compensated for their job or career. This shouldn't be any different for a professional contractor.