Finalmente consegui trabalhar com essa linha:
www-data ALL=(ALL) NOPASSWD: /usr/bin/sudo -u user /home/user/bin/script.sh
Como eu precisava de argumentos para o meu script, tive que adicionar um "curinga ao estilo de shell" no final da linha:
www-data ALL=(ALL) NOPASSWD: /usr/bin/sudo -u user /home/user/bin/script.sh [[\:alpha\:]]*
Não é exatamente o que eu estava procurando, mas funciona (isto é, acontece que meus argumentos começam com caracteres alfabéticos, mas na verdade eu gostaria que a expressão correspondesse apenas a caracteres alfanuméricos, traços e pontos).
Eu não estou familiarizado com curingas de shell e classes de caracteres POSIX, o que eu uso é basicamente copiado e colado do manual sudoers. Qualquer um que saiba como isso se aplica a esse tipo de problema, por favor, deixe seus comentários!