We don't actually 'make' money on 0845 or 0870 numbers. In the past 12 months, all BT residential customers, that subscribe to a talk plan have enjoyed free 0845 and 0870 calls. Customers that use an alternative provider, will get charged for making calls to these numbers.
The telecoms industry as a whole, share any profit made with these particular numbers if called from a non BT provider. Ultimately, BT carry the call, no matter who is used, and BT will share this profit out to the residential provider. It then gets shared to npower's provider and then to npower, so by the time it gets to us, it is minimal.