During the summer I was never really able to take on an unpaid internship, because my parents were only able to support me to a certain extent. However, my best experience was an unpaid position during the school year. After that one semester, I was more qualified for paid positions, and benefitted from my previous experience greatly. I think what is important is to make sure that the unpaid position will provide you with a good learning experience, and you can develop some important skills.
After graduating, I actually got a job with a company that helps students find internships (InternMatch), and have heard from a lot of students that had an excellent experience with their unpaid internships. However, we make sure students know how to sniff out bad internships and more importantly, we have employers look at our guides about how to set up an internship program : http://www.internmatch.com/guides/how-to-setup-a-summer-internship-program
Conclusion: unpaid can be really useful.