Strijkbout: Very annoying indeed.
It started to crop up with Windows 95 I think.
In the DOS days it was always saved somewhere in the install directory.
The reason for this is that Windows 95 introduced the idea of a user profile, where users could have separate configuration settings within the same OS install (with Windows 3.x, there was only one user). At this point, applications (and games) needed to have user/profile-specific settings to properly support this.
This feature becomes more significant in business settings, where the idea of a "roaming profile" (log in at any Windows PC and your settings are then imported from a central server) has become increasingly important. So Microsoft created special folders with related environment variables (%APPDATA% "Application Data" for data that is persistent across multiple logins, %USERPROFILE%\Local Settings\Application Data for data that is single-session only - like a browser cache) for each user on a system to handle this.
However games developers and publishers collectively really seem to have dropped the ball on this. Rather than having "<game name>" in the relevant folder, they may use "<developer name>", "<publisher name>", "<publisher name>\<developer name>\<game name>" or any combination thereof, and this could go in either of the above folders or under "My Documents" (a special shout out to Harebrained Schemes whose
Shadowrun Returns has "AppData" hardcoded as a save location, even for versions of Windows where it doesn't exist).
Microsoft, with Windows Vista, changed the names of the folders used but kept links with the old names for compatibility (thereby confusing matters further) and added an extra layer of complexity with UAC. Steam, as noted above, has added its own extra level of complexity as can Wine.
There is however a solution. Both Windows and GNU/Linux support the concept of a "link" or "alias" where a folder can point to another one (known properly as a "junction" in NTFS) so you can create your own "Saved Games" folder and have that contain subfolders with individual game names which are aliased to the relevant savegame folder. Finding the savegame folder itself can be non-trivial (use an
install monitor utility while saving a game should show which folder is being used). Then you just create a junction for that folder (
Link Shell Extension makes this a fairly simple process in Windows) within your Saved Games folder.
It's a bit of a hassle, but only needs to be done once for each game you install. And having your saved games within one folder makes them easier to backup - or to retain older saves using versioning software like
Aphar Backup (although the webpage is Dutch, the software runs in English).