vipw -- The forgotten editor...
Did you edit /etc/passwd with something other than vipw? Such as regular vi, or emacs? You may want to reopen /etc/passwd with vipw and exit out. If vipw(8) complains about the file being locked, then you found your problem. Read vipw(8) and vigr(8) for details.
I hate to sound superstitious and paranoid, but vipw(8) and vigr(8) do *things* before and after you edit /etc/passwd and /etc/groups such as aquire/release locks and post-processing. They prevent two admins from trying to edit those files at the same time.
In the event that vipw(8) hangs, dies abruptly, is suspended, or absent mindedly placed in the background BEFORE the locks are released, /etc/passwd _stays_ locked, no post-processing is performed, and the passwd(1) command will usually fail for non-root users.