Spec work is evil:
http://andrewhyde.net/spec-work-is-evil-why-i-hate-crowdspri...
Personally (I'm a programmer) I would never do work for someone else with payment contingent on whether they liked it on not. But I don't think it's evil or unethical to do so, it's just not a good deal for me, so I don't do it.