Maybe a couple of options.
Would using the "Software Licence Tracker" be any use? Just treat the contract as a licence.
Or, not sure if this will work for you, but I did similar for tracking Security certificates.
I created a new Asset type under Configuration/Asset Mapping/Add Asset Type. in your case, you could call it "Contract"
I then created a new asset state under Configurations/Asset Pages/Add Asset State. in your case, perhaps you could have "Pending", "Active", "Expired"
When adding the asset, I use the "Purchased" field as the start date of the contract, and the "Warranty" field as the expiry date.
You can then use all the usual contact info fields as your supplier contacts info.
If you want to you can also create a static group for each contract type. maybe "Contracts - Infrastructure" / "Contracts - Human Resources" etc. and add the appropriate contracts to each group. of course, you could also create dynamic groups to suite whatever criteria you set.
Maybe some other folks would have other suggestions?
hope this helps.
Cheers.
Ian