Podria ser que la linea de ejecucion no esta correcta, para verificar yo haria:
Código Delphi
[-]
var
cmdLine:string;
begin
cmdLine:='"C:\Archivos de programa\WinRAR\rar.exe" a "C:\Screensshots\'+ruta+'.rar" "'+unidad_disco+'\Screensshots\Screens\'+ruta+'"';
ShowMessage(cmdLine);
res := WinExec(pansichar(cmdLine), SW_NORMAL);
end;
Muestranos la lines de comando resultante.