I all depends on the situation. In the past I have done free work but in those situational I was getting experience and contacts and work for my portfolio. So while I wasnt getting money for my work and time I was getting something in return that I felt was valuable for my time.
It all depends on the situation and if you feel the returns are worth it.
I agree. I'm doing one this weekend for the experience and as mentioned, I've done some charity work (which I have truly enjoyed just contributing).