I couldn't disagree more; having been both a consultant and an employee.
Maybe my experiences have been unique; but I've been an employee at a large insurance company (Allstate) and a smaller custom software shop (that I currently work out, so name removed). In both cases, there was little motivation to do much more than the bare minimum. I mean, sure, I showed up and did some stuff; but I found very quickly that expectations where low. I didn't have to work very hard to meet them. If the company had a good year and you were doing good - 3-5% raise. If the company had a bad year then 'salary freeze'.
Many people find they get significant raises by switching companies, and this is why. Once you are employed the company figures, 'Well, he worked for X last year, now we give him more than X - why would he quit?'.
I show up late, leave early and surf the web. I've also been pidgin-holed into maintaining and updating a very defined section of the application. Everyone knows, if you have a problem with Y, you talk to me. That's all I do. I do Y. Five years at the same company and after four months of doing good they gave me project Y. I'm still doing project Y. I'll be doing project Y for as long as I work at the company.
When I was a consultant, it was a world of difference. A consulting firm sells consultants. They want to have REALLY GOOD consultants because selling a good product is a great way to stay in business. My current job, we sell a piece of software. They company wants that software to be really good. It's a subtle difference, but it makes a huge difference. The consulting firm I worked for would intentionally rotate us in and out of projects. If you were a Java guy, they wanted you on a .Net project. If you did desktop apps before, they wanted you to do a website. They wanted you to be highly skilled and diverse because that meant they could throw you on any project that came along. They also knew that, after about a year, as a developer on the same project, the learning curve drops to about zero. You don't learn new stuff doing the same old crap. If you were leading a team, it was different, but as far as being a developer, they wanted you to be really good at it.
And, unlike selling software, where your contributions were pretty abstract and subjective; when I was a consultant my time had a very clear value attached to it. The client was being billed for it. If I worked overtime, two things happened. First, I got paid (and my company did too). Second, the client had to pay more. There was an actual expectation of measurable work being done.
Being a consultant was great. I did, at least 2-3 times more work than I do now. I also learned a lot more from people who were really talented and knowledgeable. It was also really hard. I didn't get to spend an hour every day surfing the web and ducking out at 4pm to get an early start on my WoW raids.