Before we go any further in the "Employee vs. Consultant" discussion, I want to clarify a few things. There is a difference between consulting and contracting. Many times the words are used interchangably but this is not correct. I'm certain others will have a differing point of view, but here's mine.
Contracting: hired to do specific tasks, not always a specific range of subject matter expertise needed, for a given duration, very little overview
Consulting: hired specifically for expertise, asked to advise on processes and output, may do some tasks, but work closely with management and employees to instruct and guide
When I first started out I was contracting, but then moved to consulting. Consulting is where you can really make a difference, contracting is more like being a temp employee. Just today I was participating in a conference call with a client, discussing the way a dimensional model is built. One of the attendees asked me why I put both the surrogate key and business key in the fact table, and I replied that I did it in case the surrogate keys were corruputed, to aid in rebuilding them and also for research. Another voice popped up and said that was a good standard for moving forward, and now it looks like that client will be using that process in the future.
Contracting is different though, it's like signing a contract to run a couple thousand test plans against a new piece of software. That requires experience to execute the plans and report results. The difference is that during the requirements gathering and design review, a consultant who had worked with other systems in the industry was brought in to review and provide thoughts for product enhancement. It should be clear that there is a difference in executing a script and advising business process owners and management on features.
There are key differences between contracting and consulting, and it's good to keep them in mind when reading my posts.