Finally. An American with a path encoding issue

You have no idea how much the rest of the world struggles with issues like that. Using non-English letters often cause weird problems. German letters like ü or ß can screw up a lot. I read somewhere that this is a major problem in countries which aren't using latin letters (such as China).
The general rule is that you will get problems eventually if you use characters other than a-z, 0-9 and space. This is unrelated to M:C. You screwed up your paths
I never considered having ' in a filename, but it sounds nasty. Still doesn't beat getting a newline in a filename
I'm using windows 7 (64 bit) and I haven't tested the bat file elsewhere. My virtual machine is runs 32 bit XP though. Maybe I should test the bat file there. I have used the virtual machine to compile and the path setup in the Makefile can handle finding 32 bit program files just fine, be it with or without (x86).
The reason why I didn't have that problem is because I name my paths with known good characters. Often I even avoid space.
Try google for move my documents and/or symbolic link in windows. I use both and know it works... well proper symbolic links were introduced in vista meaning I never actually used them in XP.
Just for the record, placing an alias to a MOD in MODS doesn't work. Placing a symbolic link works. Naturally placing the mod itself in there works and is the easiest solution. The only useful scenario I can think of where you could benefit from this would be for loading savegames. Some people rename their mods (DON'T DO THAT). When they send in a savegame with a bug, the game looks for a mod with the custom name. I have used symbolic links to link say my_super_name_for_a_mod to RaRE to avoid having two copies of RaRE just to load savegames. Also both will naturally have the newest version. I haven't encountered this issue with M:C (yet?).
Setting up a symbolic link is a bit annoying as you have to do it from cmd.exe as an administrator meaning you end up with a lot of typing.
I'm not sure what you're referring by the terms alias and symbolic links. I think you're referring to, first, I don't know what, and, second, "shortcuts". When I use the term "alias" below, I know it's not the correct term. In Linux files can have aliases, but in Windows, not. In Linux you have "links" but in Windows, "shortcuts".
You are apparently in Europe, and obviously not using the US version of Win 7. In the US version, a "my documents" directory is created on the C: drive. in the Users folder. Apparently "my documents" is an alias of some kind for the real file name, which is [username]'s Documents. If you try to rename that folder, you are only changing the alias, not the real file name. I don't know how to change the underlying real name.
I moved the directory on c: to e: using the Windows "move location" button on the folder tab. When I did so, Windows apparently changed the name of that directory, and established "My Documents", the former directory name, as some kind of alias. This alias is what you see when you work with that directory--but only if you are logged on as Roger. If you logged on as "Joe", you would see "Roger's Documents" instead/
Of course I didn't put an apostrophe in the folder name--Windows put it there. So your script won't run on US Windows, as far as I can see. I've had many problems trying to change anything about these names.
I will research how this works and try to figure out how %homedir% works, and how to change the real file name. But as I see it, your script will fail for any user with the US version of Windows.
Just for the record, placing an alias to a MOD in MODS doesn't work. Placing a symbolic link works. Naturally placing the mod itself in there works and is the easiest solution. The only useful scenario I can think of where you could benefit from this would be for loading savegames. Some people rename their mods (DON'T DO THAT). When they send in a savegame with a bug, the game looks for a mod with the custom name. I have used symbolic links to link say my_super_name_for_a_mod to RaRE to avoid having two copies of RaRE just to load savegames. Also both will naturally have the newest version.
I haven't encountered this issue with M:C (yet?).
Setting up a symbolic link is a bit annoying as you have to do it from cmd.exe as an administrator meaning you end up with a lot of typing.
Again, I'm not sure what you're referring to as aliases and symbolic links in Windows. I think "symbolic links" are what are called "Shortcuts" in English.
I've used the term alias for lack of any other to refer to how Windows presents the name "My Documents" on directory listings and such, for the folder "[username]'s documents". The term is only in that context. As far as I know there aren't other "aliases" in Windows. I could be mistaken of course.
I'm not sure what you're saying in the quoted text. I think it has to do with where the Colonization mods reside and how Colonization locates them. With my setup, the Colonization installer finds the "My Games" folder under "e:\My Documents" and creates a subfolder in it named "\Sid Meier's Civilization 4 Colonization"--again, with an apostrophe. In turn, it has a MODS subfolder. The Colonization code is installed in the "Program Files (x86)\2K Games\Firaxis Games\Sid...\ folder. The installer creates a shortcut there named "_Civ4CustomMods" which points to the MODS folder under "My Games\Sid..." This is all done automatically by the installer.
Unfortunately, Steam versions omit Sid's name from these folders, for an added level of complexity.
Screenshots of these directories are attached.
Again, this might go better if you were using Windows Script Host instead of BAT.