yeah well they get loads of custom for a few reasons.
young people and their rail cards get somewhat affordable fares.
there's a lot of the UK, especially in rural areas where the trains run much more frequently, or even instead of buses, so there are a lot of people, who without cars, are forced to use them.
the way you get ripped off is by passing through certain stations. certain train companies have to pay certain fees to travel through certain stations, so it's all a clusterfuck of every train company trying to squeeze the others for money, and it's the ticket buyers who pick up the bill for that. because of this, if you only travel locally between certain stations, you can get really cheap and reasonable fares, so those services are always packed too.
lastly, travel expenses. loads of people who travel for work have their expenses paid. they make up a lot of train travellers.
so we're fucked really, they can do whatever the fuck they want. which is why rail should be nationalised again