Write it in Ada! Ok, perhaps not realistic... It would make it easier for me to write programs for it, though. (Also, Ada tends to make more secure code.)
You may not want to limit file name characters THAT much.
May I suggest a specific file hierachy?
/OS directory/
/os directory/os specific settings
/OS directory/global DLLs (OS provided)
/OS directory/updated DLLs (Allow for updates, but this is checked first. If a problem occurs, then the OS refers the original.)
/User/username/documents
/user/username/programs
/user/username/programs/program directory
The program directory contains everything in the directory to run the program. No more installing DLLs all over Windows or writing and not removing settings in the registry. If you delete the program directory, everything but what YOU moved elsewhere is gone.
I suggest this file structure because I don't like the way Windows and Linux are set up. Windows requires things to go all over the hard drive, making uninstall difficult, especially if the uninstaller doesn't do it's job. Linux stores things all over the hard disk, also. I suppose it makes it easier for the system, but finding something myself is difficult. Remember, KISS. (Keep it simple, Stupid.)