Schools cannot charge for activities that are required to deliver the curriculum. Sometimes a 'voluntary contribution' will be requested. Schools can charge for extra experiences that suppliment the core curriculum.
I have organised many school trips and residentials, and I can assure you that schools are not profiteering. Since the 1993 Lyme Bay tragedy, the governance of all adventurous activities has been tightened to ensure that all activites are properly supervised by qualified staff - and rightly so. Unfortunately this costs.
Not all costs need to be borne by the parents though. I have taken kids on ski trips who haven't paid a penny. I have searched high and low for funding. I have applied for grants wherever I thought I might get them. I have even accepted funding from the Catholic Church, despite being a comitted atheist. My consolation is it allowed a girl whose Mum had nothing to take her first ever trip aboard. She'd never been out of Scotland, and took a panic attack going onto the Channel ferry... but she LOVED it and will remember the trip for the rest of her life - guaranteed.
With imagination, forethought and planning, costs can be reduced, but £1000 funding split between 40 kids is only a reduction of £25 each, so it isn't easy to make a big difference to everyone. I always tried to give a little help to everyone, and more help to those who really needed it.
Over the years I have organised in excess of 6000 pupil day trips, and approaching 2000 pupil nights away. Some paid the full whack, some paid nothing, but I hope that no-one was ever prevented from going by the cost. I never dismissed an enquiry from a parent about financial assistance and would urge any parent with genuine worries about cost to swallow any pride and talk to the school. They may be able to help. I made sure I ALWAYS could by planning ahead.
My annual turnover for Activities Week approached £20000. This is a lot of money in educational terms - in our case about £60 per pupil, and to put in into context the 'educational spend' in my department is 23p (yes £0.23) per pupil per year. No money was ever used to remunerate staff who gave all time above their contractural hours for free.