I'm actually in the middle of a systematic nuking of a full-stack disaster, which is, in my opinion, generally the best way to go if the whole system really is a disaster.
In our case, we've got classic ASP sites running off of Access databases, alongside WebForms running off of 2 different SQL Server generations, and a couple of mix-and-match sites with all of the above, none of which was source-controlled until I came along, most of which is not documented in any meaningful way, and 3 of the 5 developers who made the mess aren't here anymore.
Our solution is basically to chunk pieces of the system, carefully map out where data is, what it's used for, and how it interacts with other parts of the whole, then rewrite it from the ground up instead of trying to fix what's already there.
I think the passive approach is more shoved down our throats than anything else; I don't think people get into this field to sit on their hands until they are forced to fix problems.
And I think that actually being able to completely nuke an old system and rewrite it from the ground up without doing the incremental approach is pretty much impossible in a production system. I think I saw a comment to the effect of, "explaining to the higher-ups that the rebuild is going to take 2 years and they're not going to actually see a difference doesn't go over very well"; I don't know that it's possible to get around that problem in real life.