O problema do seu código foi só a ordem das colunas, veja

set.seed(123)
tratamento <- factor(rep(letters[1:3],each=10))
resposta <- rnorm(30,rep(c(1,1,4),each=10))

modelo1 <- lm(resposta~tratamento)
summary(modelo1)

modelo2 <- lm(resposta~tratamento,
              contrasts=list(tratamento=contr.sum))
summary(modelo2)

contrasts(tratamento)
C(tratamento, contr=contr.sum)

modelo3 <- lm(resposta~tratamento,
              contrasts=list(tratamento=cbind(c(1,-1,0), c(1,0,-1))))
summary(modelo3)

C(tratamento, contr=contr.sum) # ordem das colunas!!!

modelo4 <- lm(resposta~tratamento,
              contrasts=list(tratamento=cbind(c(1,0,-1), c(0,1,-1))))
summary(modelo4)

cbind(coef(modelo2), coef(modelo3), coef(modelo4))

À disposição.
Walmes.

==========================================================================
Walmes Marques Zeviani
LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W)
Departamento de Estatística - Universidade Federal do Paraná
fone: (+55) 41 3361 3573
VoIP: (3361 3600) 1053 1173
e-mail: walmes@ufpr.br
skype: walmeszeviani
twitter: @walmeszeviani
homepage: http://www.leg.ufpr.br/~walmes
linux user number: 531218
==========================================================================