Você está perto. Um strong entendimento do regex é um bom caminho para receitas bem-sucedidas do procmail. O Procmail é extremamente flexível, mas essa flexibilidade depende muito da regex.
:0:
* ^(From|Cc|To|Subject).*viagara.*
/dev/null
Como alternativa, e acredito que mais perto do que você deseja alcançar, use um pipe e escape de nova linha para continuar a regra na próxima linha (para legibilidade). No seu exemplo, você estava criando uma nova condição que também precisava ser correspondida.
:0:
* ^Subject:.*viagra.* |\
^From:.*viagra.*
/dev/null