I've always thought that fees should be based on the amount of employment positions available in a given field.
So if you want to study technology or science, for example, the fees are relatively low, where as if you want to study drama or underwater basket weaving, then you pay a higher premium.
This way, so long as loans are provided to cover the fees, anybody can still choose to study anything they want, but there's a gentle encouragement to study in an area where employment is more likely.