One idea is to write JScript code for the form's onsave event that checks the contract status and/or other values and then verifies that the user filled-in (or selected a value in) a related field. In other words, you can force the user to provide information before you allow the form save to continue.
If you choose to implement this functionality with client-side code then please see the article titled "Form Scripting" in CRM help. That article provides details about how to cancel the save action.
-Tim