the game usually reads Window's registry for the save file location.
If the registry entry is missing (as is the case w/my pc currently, I merely copied the folder over when I re-worked my PC. D2 does not care if it's installed or not, so long as all it's files are in child-directories of the parent/main directory.
For example, the save files are always here:
The "..." path represents where you installed/copied the main folder. The main folder (on my PC) is "Diablo II". On my PC, the "..." is "Games" thus, my complete path is:
The default path, I think, is "C:\Program Files\Blizzard\Diablo II\Save" or somesuch.
I NEVER permit games to be installed in "Program Files" as this only clutters that too-full directory. I ALWAYS modify the install (custom install) with the "Games" folder.*
Most games do not care if they are "installed" or not - simply pointing to the main .EXE file with a manual shortcut is sufficient.
Diablo II is one such. Just starting the game will create the minimum registry entries, apparently.
\My Computer\HKEY_CURRENT_USER\Software\Blizzard Entertainment\Diablo II
Under THAT, you'll find a list that D2 uses for housekeeping. The one of interest is:
\My Computer\HKEY_CURRENT_USER\Software\Blizzard Entertainment\Diablo II\Save Path
This is the one to look at, to determine where D2 thinks
your characters should be located. Either copy them there (best) or modify the registry entry to point to where they are actually located.
* And thus why I keep all my games under the folder "Games". That folder is "sacred" and gets preserved/copied/moved with each re-iteration of Windoze, with each rebuild/upgrade of the PC. Most games haven't been "officially installed" in at least 4 or 5 upgrade/rebuild/re-install-windoze cycles--probably longer than that. And they do not seem to care, either.
This ALSO preserves my personal game-settings, and such. (and not to mention my game-saves, notes, tools, utilities, characters, key-mappings, etc, etc, etc ...