There are fees on Fairfx mind - existing customers have to pay £10 for a new card or a renewal when the old card expired more than 2 months ago, seems a bit unfair to me, they also charge for ATM transactions. The min top up is about £50 too, shame they scrapped lower amounts.
They don't offer the spot rate but they are pretty competitive and are a good way of fixing the exchange rate you buy at, so if you think the rate is going to fall you can buy in advance.
I tend to use the post office credit card now- no fees at all, you get the market rate, only drawback is you never know how the £/$ is going to swing.