I have written article how to do this in CRM 4.0 at this place,Following source code for similar class in CRM 2011.
This comes as dcoument (.doc) but download and rename as .zip and it will have all source files. this was done because wordpress only allows these types to be uploaded.
Once downloaded steps are similair to CRM 4.0 Article but still mentioned below again for reference..
Step 1: Download the application files (as mentioned above rename .doc to .zip and extract the files) and register this assembly using plug in registration tool.
Step 2: Once assembly is registered successfully, go to setting and create new workflow against contract, make sure contract is owned by admin user who have access to modify the database tables.
Step 3: Call this workflow “Change Status to Draft” and add step from Contract utilities -> Change Status to Draft. (Or whatever group name, friendly name you put in plug in registration tool)
Step 4: provide input parameters (i.e. database connection to string)
Step 5: Now publish the workflow.
Step 6: go to contract screen and run this workflow against relevant active/invoiced contract record and this workflow will make contract draft. Now user can change any field on this contract or delete the contract now
Note: This is unsupported customization, Please unit test this module on your development/test environment before applying it to Live Environment..
Hope this helps!!!