In case anyone finds this thread while searching for the same answer:
It turns out that if you explicitly pass NULL as the value of the old
password, you can skip that necessity. That is, as an administrator
you can issue something like this:
EXEC sp_password NULL, 'new_password', userid