With all things being equal, you are better off hiring a construction attorney to prepare a contract for you that fully protects you and you then give that contract to your contractor and make the contractor sign your contract. However, this may not be a practical solution for you as the costs of paying an attorney to prepare a custom contract can cost more than the work being performed. Another good option for you would be to use one of the Standard Form Contracts, such as the AIA contract forms or the AGC contract forms. These documents have been used in the construction industry for a long time. You can then hire an attorney to explain the various provisions within the Contract and your attorney can make any minor changes to the Contract that you and the attorney believe are necessary for your specific project. The last option would be to get bids from contractors and ask them to give you a copy of their contract for the work. You can then take these contracts to a construction attorney and discuss which items within the contractor's contract needs to be modified. Please note, if a contractor has gone to the trouble of drafting its own contract, you can be sure it will be lopsided in the contractor's favor.
Legal disclaimer: I am licensed in California and Nevada (formerly licensed, but inactive in Iowa). Please note that the above comment does not constitute legal advice, nor should any party rely on it as legal advice, since each situation is based on specific facts, that must be evaluated through a comprehensive legal consultation, and a review of all of the facts and documents at issue. Likewise, this comment is not intended to, nor does it create an attorney-client relationship.
A construction lawyer. They should write the contract.
This answer is for informational purposes only and is not legal advice regarding your question and does not establish an attorney-client relationship.
I suppose you could take a stab at drafting your own contract and hire a lawyer to look it over, but sometimes that's more work for the lawyer (and more cost for you) than if you just discuss what you want with your lawyer and have them draft a contract.
In remodeling situations, the contractors will often (and should) have their own contracts, so it may not even be an option for you to anything but negotiate the contracts they provide.
You can use Avvo's "Find a lawyer" search function to look for a construction lawyer in your area.
Avvo doesn't pay us for these responses, and I'm not your lawyer just because I answer this question or respond to any follow-up comments. If you want to hire me, please contact me. Otherwise, please don't expect a further response. We need an actual written agreement to form an attorney-client relationship. I'm only licensed in CA and you shouldn't rely on this answer, since each state has different laws, each situation is fact specific, and it's impossible to evaluate a legal problem without a comprehensive consultation and review of all the facts and documents at issue.