Habe es gerade nochmal getestet, also bei mir wird immer das Verzeichniss genommen wo sich auch die .exe befindet, auch wenn sich die .exe nicht im aktuellen Pfad befindet. Getestet per Console (cmd.exe).
Vielleicht liegt es auch daran das in einer meiner Standard-Units ein
Code:
ChDir(ExtractFilePath(ParamStr(0)));
im INITIALIZATION part steht.
In einem Neuen Projekt ohne auf meine Units zuzugreifen kommt genau das raus was ihr beschrieben habt also denke ich mal das ChDir() macht den Unterschied.