Ciao,
al 90% il problema è proprio quello, nel senso che molti server rifiutano email che non hanno un return-path effettivo considerandolo sintomo di spam.
Ci sono tre possibilità:
1- se la configurazione di sendmail lo consente puoi settera il return-path direttamente dallo script, inserendo:
open (MAIL "|/$path/sendmail -t -i");
print MAIL "Return-Path: quello@giusto";
...
close MAIL:
2- settare corretamante sendmail, ma lo può fare solo l'amministratore.
3- bypassare sendmail usando direttamente il protocollo SMTP tramite gli appositi moduli Net::SMTP, ma per fare ciò deve essere attivo il server apposito.