¿Por qué no especificas la longitud de varchar? es decir:
SELECT CAST('the quick brown fox jumped over the lazy dog' AS VARCHAR(45))
En cuanto a por qué 30, esa es la longitud predeterminada en SQL Server para ese tipo.
De char y varchar (Transact-SQL) :