Yo te recomendaría usar las funciones que traen estos valores, las WinApi: GetSystemDirectory, GetWindowsDirectory, GetTempPath, ó:
Código:
uses
ShlObj;
procedure TForm1.Button1Click(Sender: TObject);
var
IdList : PItemIdList;
rFolder :HResult;
APath: array[0..MAX_PATH] of char;
begin
rFolder := SHGetSpecialFolderLocation(Handle, CSIDL_DESKTOP, IdList);
SHGetPathFromIDList(IdList, APath);
Caption := APath;
end;
Pudiendo usar cualquiera de las "registry entries for special paths", que quedan guardadas en el lugar que te indica jachguate
Saludos!