Comment 155 for bug 441941

One probably-not-as-easy-as-it-sounds idea:
Have grub installer compute suitable error correction codes of the embedding area and save them somewhere there (after the core image, say). When Windows next time trashes it, when reinstalling Grub the installer could use the codes to determine which part of the embedding area has been overwritten (if the codes themselves have been rewritten, the information isn't complete but enough to be helpful) and try another area instead. Even though it'd mean having to reinstall grub maybe a few times, it should stabilize eventually (unless the windows things use up all available space). And it could (with user's permission of course) report the areas used automatically to developers.

This should require hardly any changes to grub, just a few extra pointer bytes in MBR - the installer, however, would need some rather heavy coding to pull this off.