It works both ways. You are selling your time. They are selling their environment.
The problem is that the employer is accepting a lot more risk than the employee. Do you like paying for something you can't return and you can't get your money back for if it is crap? This is the situation a lot of companies are in. They hire someone, they pay them to write the code or build the project and it turns out it's all a lot of garbage and the company is out the money.
This problem is really tainting our industry. I think a lot of people who call themselves programmers are really just some kids off the street who grabbed an open source package and started hacking away. They can build a website with some graphics and stuff, but they have no vision, no experience with large systems that are actually going to be used for any significant period of time.
It is quite depressing actually.