I've changed the default new programs path in the friendly UI more than once (from C to D and viceversa), but the registers are setted like this:
It does not matter if I try to install on C or D, the folders are created in the same way (some in C, others in D) and the error keeps unchanged.
After the attempt to install it is created in C this path: 'C:\Program Files\Microsoft SQL Server\150', but then the coincidence with the required path ends, because that folder only contains another one called "SSEI".
Maybe it is the ProgramFilesDir register, as you say...