Create a boolean on Administration.Account (or your specialisation of System.User) which is default set to true. If the user is logged in he enters the (custom) homepage microflow where you check if the boolean (ForcePasswordChange) is true, if true open the change password logic. Else continue with the normal homepage flow.
After changing the password set the boolean to false.
With kind regards,