Seem like a simple thing to do, right? Create a user account, set an initial password, then force that user to enter a new password the first time they log in. Well it used to be easy, just use passwd -e to *expire* that users password. But someone decided that was too simple, so this functionality was moved to chage. Heres a breakdown of how to create a new user account with an initial password that expires the first time its used:
useradd username
passwd username
chage -d 0 username
Seems strange that several functions in passwd overlap with functions in chage, but expire was removed from passwd altogether.