Many leading banks, insurers and energy companies are making existing customers pay to phone them while offering free numbers to new customers, a watchdog has found.
The majority - 27 out of the 34 companies investigated - offered 0800 numbers for new customers, while just six gave the free numbers to existing customers, the Which? consumer group said.
The companies operating a two-tier system by making existing customers use an 0844 or 0845 number included Churchill, HSBC, NatWest/RBS and Scottish Power, the watchdog said.
And 20 companies made their customers call the often-expensive 0845 numbers to complain about bad service or problems with their bills.
Which? said customers were faced with a "baffling" number of different charges depending on the number they used, with call costs for a typical 20 minute peak-time call from a BT landline ranging from just over 50p to call 0845 to more than £1 to call an 0844 or 0870 number or more than £2 to call an 0871 number.
Costs rocketed when calling from a mobile, with the same typical 20-minute call from an Orange pay monthly phone ranging from £2.50 to £8 depending on the telephone number prefix.
The group warned that the one in seven homes now using only a mobile phone were paying a premium to talk to the two thirds of companies offering 0845 numbers for customer complaint lines.
Which? said it wanted to see greater transparency and from companies to allow consumers to make an informed choice.
It said more than half of the 34 companies in the study failed to give adequate details about typical call costs on their websites, but those that did included Smile, The Co-operative Bank, John Lewis Insurance, British Gas, Npower, Santander and Barclays.
Which? executive director Richard Lloyd said: "It is unbelievable that companies would add insult to injury by charging their customers a premium to make a complaint. It's even worse when they offer new customers access to 0800 numbers while leaving loyal customers to pay more.
"We want to see providers being fairer to their existing customers and being more transparent on their call charges so that people are clear what it will cost before they pick up the phone."
Churchill said: "At Churchill our priority is to ensure that all calls are answered as quickly as possible in order to maintain our high levels of customer service.
"We use both 0800 and 0845 telephone numbers. The 0800 numbers are free of charge and 0845 is charged at the customer's local rate.
"The 0800 numbers are used for new customers looking to take up our insurance cover and 0845 for existing customers seeking changes to policies or making claims. We cap the 0845 numbers to local rate so existing customers can take time to discuss their policy with our experts without worrying about premium rate phone calls."
An HSBC spokesman said: "Our use of differing prefix telephone numbers enables us to ensure we offer an effective, flexible and resilient service for the tens of millions of customer calls we receive each month.
"In addition we offer multiple ways for our customers to contact us, whether it be face to face in our 1,200 branches, or indeed by the use of email or web services which incur no additional costs to our customers.
"Regardless of the channel, we always try to keep the costs as low as possible for our customers by using local rate numbers. However, if a customer would prefer we call them back, we will gladly do so. They just need to let us know."
A ScottishPower spokesman said: "As part of our commitment to provide clear and transparent price comparisons, we have always had a free phone number for customers wishing to discuss ScottishPower tariffs.
"For our main customer service lines, we operate with 0845 numbers. However, ScottishPower also offer a call back service. When a customer calls and we have a queue, we will offer the opportunity to request a call back. Our operators will then automatically call the customer back when they reach the front of the queue.
"The main reason we use non geographic numbers is because we operate across multiple locations and call centres in the UK. Non geographic telephone numbers allow us to direct customer calls quickly and efficiently to any call centre agent at any location, therefore minimising customer wait times.
"In addition, many UK households now benefit from free calls to 0845 numbers. BT introduced free calls to 0845 numbers in January 2009 where calls are made from landlines and other providers have followed to do the same."