Bit of a strange one this…
Obviously, there are tons of articles around about running commands as root without a password prompt. But I wanted to run a command as another user and also not have a password prompt.
So in sudoers I had

root ALL=(ALL) ALL
%sudo ALL = NOPASSWD : ALL

The strange thing was that if I ran:

$ sudo ls

it worked fine. But if I ran

$ sudo -u anotheraccount ls

I was prompted for my password.
The key to working this out was the command

$ sudo -l

which gave me:

kbailey@benelli2:~$ sudo -l
Matching Defaults entries for kbailey on this host:
env_reset
User kbailey may run the following commands on this host:
(root) NOPASSWD: ALL

So it turns out that if you don’t specify a user then it defaults to root.
The answer was to add specific lines for each user – like this:

root ALL=(ALL) ALL
%sudo ALL = NOPASSWD : ALL
%sudo ALL = (beta) NOPASSWD : ALL
%sudo ALL = (deploy) NOPASSWD : ALL
%sudo ALL = (livecopy) NOPASSWD : ALL

This is not really clear anywhere in the man pages – and Googling just finds posts about running commands as root without the password prompt.