As you probably already know, there are three levels of structures that you can use as input to the NetUserAdd function. The level you are using is specified in the second parameter to the function.
To explicitly set the password as expired, you need to use the level 3 structure USER_INFO_3.
At the bottom of that structure, you will see a flag called usri3_password_expired. Here is an extract of the documentation on that flag:
usri3_password_expired
Specifies a DWORD value that contains password expiration information.
The NetUserGetInfo and NetUserEnum functions return zero if the password has not expired (and nonzero if it has).
When you call NetUserAdd or NetUserSetInfo, specify a nonzero value in this member to inform users that they must change their password at the next logon. To turn off this message, call NetUserSetInfo and specify zero in this member. Note that you cannot specify zero to negate the expiration of a password that has already expired
Hope this helps.