The app I made needs to know where the file is and modify it even when putting in a hdd from another computer. So if I put in a system hdd from another computer it would be quite crappy to start figuring out where the file might be without access to environment
variables etc. An ok compromise would be if I could elevate the program when needed at runtime instead of doing that on every run. I agree on your other points however that still leaves the question why the Demand/Assert gave no errors.
re: Guidelines. Just following the same guideline as Microsoft when throwing these files in C:\