I think that no matter exec program is running under posix or windows, GetDataFile should always get the current working directory(getcwd) and concat with *filename.
What makes you think so?
GetDataFile is intended for files that are shipped with application. The most logical place in Win32 is therefore the same dir as where .exe resides (in Linux this is still to be decided, however I am starting to think that GetExeDirFile would be a good idea even in linux, despite being against current linux conventions).
For development purposes, there is a hack that allows you to place those app specific files in package folder (for easier maintainance) and U++ takes them from there when started from TheIDE (that is what that environment variable is for).