Salaries paid aren't that much better in these companies though. Expectations of programmer aptitude are all over the map also, companies do like administering those "programming tests" which can vary from very tricky math problems to stuff like "What is the keyword for inheritance in Java?". Thing is that salaries in both types of jobs tend to be similar.
Another problem with these tests is that they are often administered by recruiters who don't even bother to bring them upto date, a friend had a test for a C# programming position which asked him mostly questions about VB6.
It's quite a shame because the government likes to talk about how they want tech innovation to happen in the UK as it does with the US. However most of the top programmers seem to either end up going abroad or getting assimilated into finance or into various gigantic consulting corps.