Sorry for the slow reply. That's a tricky one.
I think you are probably looking at a custom auth object and a BADI implementation during purchase order creation to achieve this.
The only other approach I could think of is to create a custom auth object and make the contract field in ME59N mandatory for users which don't have it. I'm not sure if that is technically possible.