No puedo responder a la pregunta de por qué funciona en XP y no en Vista, pero cuando ve ese mensaje de error asociado con un script muy grande, generalmente significa que el lote de consultas es demasiado grande para el analizador manejar.
¿Hay algún GO declaraciones en esos guiones? Si no, eso es probablemente lo que está causando la falla. Más de 1 MB es bastante grande para un script SQL que no se ha dividido en lotes. Pon algo de GO declaraciones allí o (mejor aún) dividirlo en guiones más pequeños.