I think, anything more than 3-4 weeks, should be paid. Even then, 1-4 week placements should at least cover expenses, including any travel or food costs. I'm sorry but even if it helps my CV, I would want to be remunerated for the tasks I do - which often time help the bottom line of the company. Working unpaid for 6 months is a ridiculous expectation, one that is steeped in elitism and trying to pressurise less well off graduates into holding multiple part time jobs in order to even survive at these places.
I feel without these interns, certain activities/tasks wouldn't get done, and as such I feel they are a business NEED, which should be paid for. It's plain and simple exploitation of labour otherwise.