Não tem o que fazer, quanto mais avançado o jogo estiver, maior as chances de os contratos já virem completos, tanto para você quanto para outros jogadores, mas faz parte do jogo. É bom ser recompensado pelo trabalho árduo de desenvolver sua infraestrutura.
Agora, me parece que o problema que você teve foi em pegar um contrato no seu turno e revelar um que um oponente já completou, dando esse contrato 'de graça' para ele. Bom, nada é de graça. Além de ele já ter as condições para concluir o contrato, ele precisa ter um tile de contrato disponível e estar disposto à gastar um turno para usá-lo. Ao invés de estar urbanizando ou energizando, por exemplo.
Se essa é a preocupação eu tentaria fazer o seguinte:
Jogar com as pilhas de contratos viradas para cima, de forma que todos possam ver qual é o contrato que vai substituir o próximo que for pego. Dessa forma, você vai precisar prestar atenção se um oponente já tem as condições para concluir ele e se ele tem um tile de contrato, e aí vai poder pensar se vale a pena você pegar um e deixar aquele disponível para ele. Acredito que isso poderia gerar situações ruins, como todos quererem esse 'próximo' contrato e deixar de pegar outros esperando os oponentes fazerem uma ação dessas, mas acho que vale a pena o teste.