We use Escrow.com to complete the transaction. They are a licensed escrow company and they specialize in domain names.
When an agreement is reached, we create a transaction on Escrow.com. The buyer and seller are both notified and are asked to create an account or login into their existing account.
The buyer deposits the funds at Escrow.com and then the seller is prompted to send the transfer information to the buyer. Once the domain transfer has completed, Escrow.com releases the funds to the seller.