I run your script on my environment and when I try the compare it fails in exactly the same way.
SQL profiler shows me that this is what it's running:
use [BigTriggerSource]
go
set nocount on select su.name,so.name,sc.number,sc.text,object_name(so.parent_obj),objectproperty(so.id,'IsExtendedProc'),objectproperty(so.id,'ExecIsTriggerDisabled'),objectproperty(so.id,'IsExecuted'),objectproperty(so.id,'ExecIsFirstDeleteTrigger'),objectproperty(so.id,'ExecIsFirstInsertTrigger'),objectproperty(so.id,'ExecIsFirstUpdateTrigger'),objectproperty(so.id,'ExecIsLastDeleteTrigger'),objectproperty(so.id,'ExecIsLastInsertTrigger'),objectproperty(so.id,'ExecIsLastUpdateTrigger') from syscomments sc join sysobjects so on so.id=sc.id join sysusers su on su.uid=so.uid where so.xtype='TR' and objectproperty(so.id,'IsReplProc')=0 and objectproperty(so.id,'IsMSShipped')=0
go
set noexec off set parseonly off
go
use [BigTriggerTarget]
go
set nocount on select su.name,so.name,sc.number,sc.text,object_name(so.parent_obj),objectproperty(so.id,'IsExtendedProc'),objectproperty(so.id,'ExecIsTriggerDisabled'),objectproperty(so.id,'IsExecuted'),objectproperty(so.id,'ExecIsFirstDeleteTrigger'),objectproperty(so.id,'ExecIsFirstInsertTrigger'),objectproperty(so.id,'ExecIsFirstUpdateTrigger'),objectproperty(so.id,'ExecIsLastDeleteTrigger'),objectproperty(so.id,'ExecIsLastInsertTrigger'),objectproperty(so.id,'ExecIsLastUpdateTrigger') from syscomments sc join sysobjects so on so.id=sc.id join sysusers su on su.uid=so.uid where so.xtype='TR' and objectproperty(so.id,'IsReplProc')=0 and objectproperty(so.id,'IsMSShipped')=0
go
set noexec off set parseonly off
go
And when I run that myself in query analyser it all looks fine, but the db ghost compare tool still fails.
My SQL environment is SQL Server Developer Edition (8.00.2039(SP4)) with collation "SQL_Latin1_General_CP1_CI_AS"
Just checked windows update and everything is up to date so nothing exciting there either. I'll try putting those DBs on a real server and see if that makes a difference.