Ladbroke Grove was down to driver error, however a major factor in the accident was the incompetence of Railtrack, in not convening a signal sighting committee on SN109, despite multiple SPADs at that signal, and letters from a TOC advising of poor visibility of that signal.
Potters Bar was more than likely down to poor maintenance. When nuts for a stretcher bar are lying on the trackbed, something is wrong.
Hatfield was down to poor maintenance again, and yes there was an enormous backlog of basic infrastructure work identified because of Hatfield. Just think of all those 20 MPH TSRs that occurred after Hatfield and how the network ground to a halt.
Bear in mind that the first of those accidents mentioned was a full 5 years after Railtrack was hived off from BR, and it seems that Railtrack had enough time to start getting on top of maintenance. However the amount that was allocated for renewals was a tiny fraction what would be required for any railway. It was less than BR spent on renewals.
--- old post above --- --- new post below ---
To be fair to TPWS, whilst it wasn't the best system available, it works.