Network Rail has been told to do more to prevent landslips after a train crash caused by debris on the tracks.
The 06:19 BST from Milton Keynes derailed near Watford in September 2016 and was then hit by another train.
The Rail Accident Investigation Branch (RAIB) said the site was not identified as a landslip risk despite a similar derailment nearby in 1940.
In a statement, Network Rail said it was "grateful for RAIB's recommendations".
Two people were treated for minor injuries following the crash on 16 September.
The RAIB report said Network Rail engineering works in the area in 2016 had not addressed drainage problems.
It added: "Had the first train been derailed only a short distance further to the right, the consequences would have been much more severe."
The report said the landslip happened following "exceptionally wet weather" and that water had flowed down the steep slopes of the railway cutting, causing soil and rocks to wash on to the tracks.
Work was being carried out to strengthen the slopes along this stretch of railway but "the project made no provision" to improve drainage.
The RAIB recommended that Network Rail make improvements to drainage and the identification of locations vulnerable to washout.
A spokesman for Network Rail said: "The storm which caused the landslip at Watford was thankfully a rare occurrence but our weather monitoring increasingly allows us to pre-empt heavy rain and strong winds and put measures into place to reduce the impact on the railway."
The southbound train was travelling at about 70mph (112 km/h) towards Euston when the leading carriage was derailed.
About two minutes later, at around 07:00, it was "struck a glancing blow" by a northbound passenger train that was forced to stop but did not derail.
The second train was able to cut its speed by more than half before the impact after receiving an emergency warning.
Hertfordshire Fire Service said officers who helped evacuate passengers counted 384 people on board the two trains, which sustained "significant damage".