I understand that mobile phones don't want you using their network and bandwidth for calling card calls using freephone numbers - but surely it isn't beyond the bounds of human ingenuity to separate out calling card 0800 numbers from ordinary 0800 numbers?
In any case, the amount the mobile networks charge is completely obscene. It can be up to 50p a minute to make a "free" call!