YMCA offers many classes to children, from swimming to ballet. These classes are priced separately and are available to non-members as well. While members get a discount, non-members are asked to pay a yearly “program membership” fee of $25-$35.
There is a children art school that asks for $25 “processing fee” at the time of sign-up. There are many examples of additional upfront fee customers are asked to pay.
Costco does it with its annual membership fee.
In microeconomics this is called two-part pricing.
The purpose of these fees is to capture some upfront value. Then the marketer can position their services at a lower price. They are looking at customer margin – maximizing profit from the customer through multiple sources.
In the extreme case, like amusement parks or Amazon Prime, the marketer captures all the value with the initial fee and gives away the individual services at their marginal cost.
The membership fee is not only pure profit it also helps to encourage people to spend more throughput the year. The fact that people paid the fee should not matter in future purchases, because it is sunk. But people do not think rationally, they want to maximize the utility of their upfront fee by buying as many services as they can.
When you have multiple interactions with a customer, sell multiple widgets to them or offer subscription services you should almost always capture upfront value with two part pricing.