Think of what you have to offer an employer as your product, and what you do when you look for a job or try to keep the one you have as marketing and selling that product, and I think this will make the point clear. If not ... imagine you're Lucent and you have to compete with other PBX providers in an incredibly tight market. You have to build all of your costs into your pricing. You'll buy your chips from the lowest cost provider that delivers to your specifications; likewise engineering and programming. What else can you do - charge a lot more than your competitors and try to make it up in "brand management"?
The fact of the matter is that American technical professionals don't want to compete on price with their Asian and Russian counterparts. That's fine, but if we don't, we'd better find some other dimension in which we can compete successfully, because there's nothing in the social contract that obliges our customers ... the companies that employ us ... to pay more for the same service than they have to in the labor marketplace.
In fact, I think it would be pretty easy to construct an ethical argument that if American programmers charge more than their Asian counterparts for the same services, then it's the American programmers who are guilty of greed, not their employers. It comes down to how you define "fair price," I guess.
Ouch. Hard to argue with though.