If you really think about it, working for free is the wrong name. When we don't get paid, we're actually working for less than free - because we spend money on gas and/or transit and/or tolls; we might wear our own suit on the indie film and then have to get it dry cleaned afterwards; they might ask us to get a certain hair cut, or the character really needs to wear lipstick and eye shadow that we'd never wear in our civilian life. So, we end up losing money in order to participate in the project!
So, why not ask (or negotiate) for compensation for these expenses. You're donating your time and energy, so maybe they can pay for your bridge tolls, or create a clothing allowance, or give you a make up store gift card in return. When a stipend offsets your total expenses, then you're actually working for free.
Set a bar for yourself. It can be scary, and you may feel like you're limiting opportunities for yourself. In the long run though, dropping those free projects will allow you to be available when projects that offer compensation for your time and energy come along.
However, if you do choose to work for free or less than free, have a very good reason to do so. I have worked for free or less than free when it: 1) gave me the opportunity to meet people in the position to hire me for future work 2) allowed me to learn or practice a new skill related to my acting 3) would result in me getting some amazing new marketing materials for myself - photos, footage, etc. 4) promoted a cause or organization that I strongly believed in.
Value yourself and others will see your value.