http://www.reuters.com/article/idUSTRE7062K320110107
"...who recommends volunteering at for-profit firms"
"Working for free can help job seekers make contacts, learn new skills and get hired when hiring freezes lift, he said."
The problem with this - and I dealt with it myself before dumping it - is that the employer will not hire someone who has worked for free for them, and having worked for free for a for-profit business makes future employers wonder why they should pay you, so they don't hire you.
Now, working for non-profits is seen as a positive attribute on a resumé. Potential employers like to hire people who support their community through volunteer work, and if the volunteer organization is one they also support, it makes them happy to hire an employee that furthers their own interests. Of course, once hired, they expect you to continue to volunteer for that organization or cause.
But if you give your time and skills to a for-profit company, they don't ever see any need to pay you for the work you gave away. Other employers will see that you worked for free and wonder why you suddenly want money for working. Once I dropped all the "worked for X Company for 18 months - salary $0, no pay raise" and "interned for Y Company for 11 months - salary $0" type job references and listed only the paid employment and the "volunteered at W agency for 20 months, became supervisor of other volunteers" and "volunteered at Z for 11 months, edited their newsletter and ran their primary fundraiser campaign" I had a paying job in a week.
When I was younger, internships were paid positions - they paid substantially less because they were seen as "on the job training" and "entry level" work, and people who interned at a company had a good chance of being promoted or being hired away from the company. It was good to intern back then under those conditions. Of course, back then, if you worked in the mail room or some other low-level job at a company, you could expect to be hired up to file clerk, and up from there, but now, if you work in the mail room, you work in the mail room for as long as you work at that company. If you want a promotion, you have to change companies. And if you work for free for a for-profit company, they will expect you to keep working for free for them.
I know there are exceptions, there always are, but around here, if you work for free, you might as well give up ever getting paid for that or any job with that company, and it will be harder to find a paying job if you admit you worked for free anywhere other than a non-profit. And that was back when the economy was decent! I can imagine how much greedier these for-profits have become in the down-turn - "oh, pity poor me! I can only afford a Mercedes this year instead of the Rolls I had my heart on, and oh dearie me, I must let either the second gardener or the upstairs maid go! How can I live like this! You can't expect me to pay you anything. Work free for me and I'll keep you busy - that's all I can promise. Maybe, if you faint from hunger on the job, I'll buy you a vending machine sandwich now and then, but really, with all the belt-tightening I must do - did I tell you I had to limit myself to just two Brioni suits this year and my poor wife, she had to settle for a mere Zac Posen handbag for her birthday! - I just can't afford to pay you at all, but I appreciate the work - now you said you could pull a 9 hour shift, right?"
Another problem with working for free is that even though you aren't getting paid, if you dare take any time off for job hunting and job interviews, many companies will "fire" you and if you list them as a reference, will give an unfavorable one - usually saying that you take excessive leave. And this from a company that isn't paying you!
The other suggestions - bartering your skills, selling crafts, taking jobs outside your comfort zone or skill set, applying your skills to different types of employment - these are all good, but that one, of giving your skills for free to a for-profit company? That one sucks.
My recommendation is to never give your time and skills to a for-profit company unless you own the company.