I'd say that being a successful contract negotiator requires four things: knowledge of the law as it applies to contracts, knowledge of the field in which you are working (for example, if you are drawing up an employment contract, you need to understand human resources), good people skills, and attention to detail.
In terms of knowledge of the laws pertaining to contracts, you have to know what is and what is not allowed. To stick with the example of an employment contract, the employer may be offering 22 days of leave per year. The prospective employee may argue that he wants 30 days per year. As the contract negotiator, it would be your job to know whether the prospective employee is allowed to make that request in terms of the law.
When it comes to knowledge of the field in which you are working, you have to know what the industry standards are and what a typical contract looks like. If a prospective employer states that an employee must work seven days a week without extra compensation (which is admittedly an extreme example), it's your job to know that the contract would not be a legally binding document.
With regards to people skills, a contract negotiator needs to be able to communicate well with people from all walks of life. For example, they need to be able to relate to both the CEO of a corporation and the person who is applying for a job as a custodian within that corporation.
Lastly, we come to attention to detail. Contracts are incredibly complex, technical documents, and while the negotiator may not be the person responsible for drawing them up, they still need to have a thorough understanding of all the relevant terms and conditions.