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.