http://msdn2.microsoft.com/es-es/library/ms176089.aspx Cita: varchar [ ( n | max ) ]
Datos de caracteres no Unicode de longitud variable. n puede ser un valor entre 1 y 8.000. max indica que el tamaño de almacenamiento máximo es de 2^31-1 bytes. El tamaño de almacenamiento es la longitud real de los datos especificados + 2 bytes. Los datos especificados pueden tener una longitud de 0 caracteres. Los sinónimos de varchar en SQL-2003 son char varying o character varying.
Supuestamente varchar(max) soporta más de los 8000 caracteres, pero nunca lo he utilizado en la práctica, así que desconozco cual sea su comportamiento.