When I fly, I love to pay baggage fees. When I go camping, I love forking over some cash at the park gate. When I got a notice from Citibank recently that it was imposing a flat $15 fee on accounts that have balances below $6,000, I was overjoyed.

Okay, joy is overstating the feeling, but the user fees charged by banks and others that get such a bad rap actually have a lot going for them—and should be a cause for celebration, rather than scorn, among bank customers, regulators and consumer scolds.

Consider the oft-maligned airline baggage fee. Nobody likes shelling out $20 to check a suitcase. But ask yourself: What’s the alternative?

It’s the old system in which the cost of flying bags around was tacked onto ticket prices. Under that regime, guys like me who hardly ever checked bags subsidized those who traveled like refugees. Since nobody paid anything out of pocket, nobody complained. Instead, they felt no compunction about packing the kitchen sink and foisting the added cost on their fellow fliers. Ultimately, light travelers paid for the pack rats and everyone paid more. Just how much more nobody will ever know.

As my colleague Victoria Finkle reported recently, the average checking account costs a bank about $350 a year to maintain when the cost of branches, call centers, statements and the like are factored in. Like airlines, banks have two alternatives for recouping their costs and earning a profit.

Traditionally, they’ve snuck the overhead into what they charge indirectly, or with add-ons. It’s precisely such tactics that have incurred the wrath of politicians and consumer groups. These indirect or junk costs include overdraft and debit card interchange fees.

Under the sneaky method, consumers are often clueless about what or when they’re paying. Customers might think banks are giving them great deals when they’re actually getting ripped off. That could happen if a bank is paying way below-market interest rates on the high balances they require to avoid overt fees. Or banks could be charging high credit card interchange fees to retailers that jack up the cost of everything consumers buy, even when they pay cash.

Indirect fees are a recipe for trouble. They’re at the core of allegations that BNY Mellon overcharged foreign-exchange clients. They’re the reason mutual funds have managed for decades to charge exorbitant fees by invisibly deducting them from investors’ accounts daily and never presenting an actual bill.

Far better is the option of charging upfront fees like the one Citi has proposed and saying sayonara to the dark nooks and crannies of indirect fees. Bank customers, regulators and even populist politicians should love user fees.

So why do they hate the fees instead? Why did they pressure Bank of America to back off its $5 monthly debit card fee and Verizon to do an about-face on its $2 fee for accepting one-time credit card payments?

Simple: because the fees are in customers’ faces. A $35 overdraft fee appears on a monthly statement and is overtly debited from a customer account.

Banks are no doubt in a tight spot in an era when they’re public enemy No. 1, Dodd-Frank’s Durbin Amendment has capped debit interchange fees and the slightest whiff of a fee seems to incite the pitchfork crowd

To make fees stick, banks need avoid the B of A and Verizon mistake of trying to charge upfront for what formerly was “free” and of giving customers no way out.

Instead, banks need to figure out in advance which fees customers are likely to grudgingly accept—as they did long ago with ATM fees. Then they need to grease the runway better before bringing in the fees for a landing. And they need to give customers a feeling that they’ve got a choice. Citi, for one, seems to have figured this out.

Neil Weinberg is the editor in chief of American Banker.