Para o varchartipo de dados, um truncado intserá convertido como em *vez de gerar um erro (nesse caso, os três dígitos não se encaixam em a varchar(2)).
Isso não acontece com nvarchar
Não há como alterar esse comportamento, ele é preservado para compatibilidade com versões anteriores. Se esse é um problema real para você, você pode adicionar uma restrição de verificação de que o valor na coluna não é, *mas não consigo imaginar nenhuma situação em que isso realmente valha a pena.
A solução é simplesmente não fazer isso. Se você precisar inserir um INTe validar, ele estará no intervalo -9 to 99primeiro. Ou sempre use aspas em torno dos valores destinados a uma coluna de string em vez de confiar em conversões implícitas.
integerem vez devarchar