It's all up to the app. Linux ports usually use $HOME, somewhere under /var for shared configs or for older ones, under /etc but if locally compiled or ported to Windows, /.config.
A well behaving program will also have fall backs, what if $HOME doesn't exist?
The screensaver for example tries for %HOME% first, then tries for the boot drive and if that fails, falls back on c:\os2\apps\SSaver\ and judging by the comments in the code, using %HOME% was a more recent addition.
Generally when porting, it is easiest to go with the flow, which usually means $HOME.