Firstoff you'll need to check what's available in your area. Its absolutely pointless getting one provider (if you're also looking for a landline that is) set in your mind that you "have to have it" and then find its not available.
As far as the basic line is concerned that's true. The card and dialaround services such as 1899, 18185, 1301 etc. are accessible from any BT-provided line, however, and usually indirectly via toll-free access numbers from any line as well, so are usable regardless of who your basic service provider happens to be.
In fact I actually prefer TalkTalk's caller ID to BT, as it tells me who's calling even from international numbers whereas BT would just say "International Caller" (take your pick).
The last I heard BT still has a policy of not forwarding caller ID on incoming international calls, even though it may have been received over the international trunk circuit. That doesn't necessarily mean that you will never receive some sort of caller ID just because you have a BT line, however. It's all very dependent upon the originating carrier in the U.S. and all the carriers the call happens to pass through on the way here.
For example, on my BT line I will often receive calls from the U.S. which just show as "International," while other times the call has been routed via a carrier which
does send caller ID data forward into the U.K. network and I see the originating number.
On this subject, beware that caller ID on international calls can often get a little mangled in transit though as carriers haven't properly established common protocols for dealing with it. For instance, I have no way of telling at which point in the U.K. network it is occurring, but my calls coming in from California's 707 NPA via a specific calling card will often display as 0707xxxxxxx. The final carrier in the U.S. is forwarding the calling number, and at some point in the U.K. the zero is being prepended to it. It's fine if you recognize the rest of the number, but could be very confusing for someone not aware of this problem, since 070 could also be a U.K. "personal numbering range" number (or a call from Washington D.C. 202-xxx-xxxx being treated the same way could appear to be from London 020, a call from Hawaii 808-xxx-xxxx could appear to be from a U.K. toll-free 0808 number, etc.).
Vonage is similar - but uses the IP protocol, excellent call quality and a cheaper access charge. However, as I've called from my Swiftcall account to a Vonage user in the US - I'd say theres much more brief cutouts, some longer 10-20 seconds 'static noise' gaps and occasionally dropped calls etc. For me, just enough to delay with getting the vonage option for now.
The problem with all VoIP services is that they are using a transmission medium which was never designed or intended for such applications. With traditional telephony, once a path is set up for your call you have exclusive use of that channel for the duration of the call. Whether the older-style FDM (Frequency Division Multiplex) carrier systems or a modern digital TDM (Time Division Mutiplex) system, you have an allocated bandwidth which is yours exclusively until you terminate the call.
TCP/IP just doesn't work that way. You send a packet of data into the network, and it arrives (most of the time) at its destination some time later. There is no guaranteed maximum packet transit time, since the time it takes to get there is completely dependent upon other traffic on the network. When packets start to become delayed excessively, quality deteriorates, progressively getting worse through the "speaking through a goldfish bowl" or "sounding like a Dalek" effect through to drop-outs lasting anything from a fraction of a second to several seconds, and eventually to dropped calls.
Where you have control over the entire network involved, it's possible to take steps to minimize these problems. An internal network in a company, for example, can be set up to prioritize VoIP traffic over the network. But as soon as you start sending VoIP packets over the internet at large over which you have no control, it's simply impossible to guarantee any specific quality of service.
That's why there is so much variation in people's experiences with different VoIP service providers, since the quality depends upon so many different variables: Your ISP and its network capabilities as they apply in your area, the same factors for the ISP serving the person you are calling, the network at all points between at the particular time you are calling, and so on.
We did have one issue about 6 months ago where there was an echo on the line. Oddly enough, it only occured if we were talking to someone in the Republic of Ireland. We heard the echo on our end, but the other caller didn't hear the echo at their end. Calls elsewhere in the UK and to the US were crystal clear. We called their tech support and they said it had something to do with a software upgrade
This is another area which causes quite a few problems - I've just been trying to sort out such a problem with BT BBV/VoIP service for a client. Much of the software is so full of little incompatibility issues that it's not at all unusual to find that a software revision on the VoIP server then results in problems for an existing installation, even though nothing there has changed. It's compounded by the fact that there are so many different servers and software versions around that your VoIP adapter might work fine on your service on one server, but if the provider swaps you to a different server you can suddenly start experiencing difficulties.