You mean if it changes AFTER installation? Because I recall installing Windows XP on top of another Windows XP, and getting the OS drive to be mapped to D: and everything was working fine (just on the wrong drive). The problem was I had to reformat and install with a different media in order to get it as C: (I had an upgrade disk around only), because changing the drive letter of the system drive after installation is unfeasible.
The problem is not hardcoding C:, the problem is just that ALL of those paths are stored in absolute form in the registry, without even using environment strings such as %SYSTEMROOT% to store them. But really, it's not like you can go around unexpanding environment strings, chances are it would open quite a lot of security holes.