The cause is that INFORMATION_SCHEMA.COLUMNS on Sqlserver 2000 reports a value for PRECISION and SCALE, while on sqlserver 2005 it doesn't (NULL).
To see this, try this query:
DECLARE @sFullTableName varchar(100),
@sTableName varchar(100)
SET @sFullTableName = '[dbo].[employees]'
SET @sTableName = 'employees'
SELECT INFORMATION_SCHEMA.COLUMNS.*,
(
SELECT COLUMNPROPERTY(OBJECT_ID(@sFullTableName), INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME, 'IsComputed')
) AS IsComputed,
(
SELECT COLUMNPROPERTY(OBJECT_ID(@sFullTableName), INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME, 'IsIdentity')
) AS IsIdentity,
(
SELECT COLUMNPROPERTY(OBJECT_ID(@sFullTableName), INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME, 'IsRowGuidCol')
) AS IsRowGuidColumn,
(
SELECT COLUMNPROPERTY(OBJECT_ID(@sFullTableName), INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME, 'Precision')
) AS Length
FROM INFORMATION_SCHEMA.COLUMNS
WHERE INFORMATION_SCHEMA.COLUMNS.TABLE_NAME=@sTableName
AND INFORMATION_SCHEMA.COLUMNS.TABLE_SCHEMA='dbo'
ORDER BY INFORMATION_SCHEMA.COLUMNS.ORDINAL_POSITION ASC
and alter the table name at the top.