É como o Rui disse, no odesk podes inclusive criar "milestones" para os pagamentos, tipo, quando chegar a dia x ou o programador acabar a tarefa Y é emitido um pagamento, etc...Tu ao contratar alguém podes definir isso, quanto pagas no inicio (se pretenderes pagar adjudicação) , podes definir todas as condições ao criar uma nova oferta, mas também podes negociar em privado com os candidatos, podes ainda por exemplo a meio do projecto negociar os prazos e montantes de pagamento, a nova proposta é enviada para o freelancer e ele aceita ou recusa. É muito completo e flexível o sistema do ODESK, qualquer dúvida que tenhas coloca aqui.