According to the Wiki (https://en.bitcoin.it/wiki/Contracts):
"There are two general patterns for safely creating contracts:
Transactions are passed around outside of the P2P network, in partially complete or invalid forms.
Two transactions are used: one (the contract) is created and signed but not broadcast right away. Instead the other transaction (the payment) is broadcast after the contract is agreed to lock in the money, and then the contract is broadcast.
This is to ensure people always know what they are agreeing to.
Every transaction can have a lock time associated with it. This allows the transaction to be pending and replaceable until an agreed upon future time, specified either as a block index or as a timestamp."
While this is not a complete alternative to escrow, it does open up interesting payment possibilities. Just thought you might want to look into it in case it's relevant to your business model.