Scenario / Symptoms:
A site collection is backed up and restored to a different farm. When users navigate to the site default.aspx they receive HTTP 404 error.
Users are able to visit the _layouts/settings.aspx page but not the default.aspx
Default.aspx on some subsites work and some do not.
Make absolutely sure that all custom solutions (wsp) are deployed at the farm level.
This took me a lot of time to figure this out because we never had documentation of all custom solutions on the farm.