OK so guess what...it WAS a problem with the code.
The problem was that there was an issue in the Partial view. I was trying to use Model.SomethingNull without checking it.
The lesson to be learnt here though (apart from check for null!) is that when there is an issue like this in a partial view which you are calling using Html.Partial, Visual Studio won't step through the lines of the Partial view. It will just fail at the start of the partial and won't tell you that there is a problem somewhere in it.
This also explains why the problem was present in all environments.