The NCVO defines volunteering as
"any activity that involves spending time, unpaid, doing something that aims to benefit the environment or someone (individuals or groups) other than, or in addition to, close relatives. Central to this definition is the fact that volunteering must be a choice freely made by each individual."
This clearly distances actual volunteering from unpaid internships or work-for-benefits schemes. Internships and work for free schemes generally benefit corporate businesses whilst volunteers should have a community or environmental focus and are usually, but by no means always, for not for profit organisations or charities.
Real volunteer roles cannot replace roles which were previously paid, although some voluntary organisations get round this by restructuring.
A genuine volunteer should have the same employment rights as a paid staff member with the exception of a notice period: a voluntary position can be terminated with a day's notice. I am not sure about unpaid positions but would imagine they are similar. Corporations view them as a great way of running a light, lean workface whereas charities etc view volunteers as essential to achieving their stated aims.
I have volunteered with a number of what I believe to be worthwhile causes over the years, knowing that without volunteers an activity simply would not happen. I've done tree planting, I run a large community event, listened to reluctant readers in primary schools and even volunteered on Cub Camps, but I would never, ever give my time for free to a profit making corporation or business. If they want to gain from my knowledge, they should pay for it.