Si te llega con impedir que lo borren mientras tu programa se esta ejecutando puedes usar algo como esto:
Código Delphi
[-]
var
hFile: THandle = INVALID_HANDLE_VALUE;
hFile:= CreateFile(PChar('Archivo.doc'),GENERIC_READ,FILE_SHARE_READ,nil,OPEN_EXISTING,0,0);
if hFile<>INVALID_HANDLE_VALUE then
CloseHandle(hFile);
Mientras este bloqueado los demas programas podran leerlo pero no podran escribir en el, ni borrarlo.
Espero que te sirva