Самое правильное и простое, на мой взгляд - держать данные по любому "договору" в ХМЛе, и по юзерскому запросу их отрисовывать - как, зависит только от полета фантазии.
Пример структуры ХМЛя:

Код:
<contracts>
<contract
name='lease&01'
t_fields='landlord&John_Smith&tenant&John_Doe&blah-blah-blah...'/>
</contracts>
Дальше пишем функцию которая будет "собирать" из всей этой инфы нужную страницу или несколько, не важно =)