Any password properties in a Profile override the equivalents in DBC.SysSecDefaults, so 'no' you don't have to update that table as well.
How the users get informed of password expiration etc. is largely down to the client tool. What happens is:
- assume that a user logs in to the Teradata system and their password has expired,
- the dbms will return a specific error code (3682) to the application,
- it is up to the application to display any message/warning etc. to the user and handle their response.
Having said that, I think (and I could be wrong) that the Teradata ODBC driver and possibly the .Net driver can handle this error code and can display an appropriate dialog box to the user. If the user is using SQLA then they will see a dialog box which tells them what to do (as I said, this dialog box may be displayed by the driver/api layer and not SQLA itself).
There is no "your password will expire in 'n' days" capability within the dbms. You can probably write some sql that will do a calculation based on the password expiration rule and the password last changed date, but that would be down to the application and is not part of automatic dbms processing.