There are a lot of ways to get this done. One way is to construct what I'll call a "metadatabase". A metadatabase is just a database whose user tables contain the structural metadata from one or more other databases. I'm not too familiar with SQL Server, but I did the same thing several times with Oracle.
Perhaps the easiest way is to unload a selection from the system tables, and load them into an MS Access DB, as user tables. From there, comparing two databases is just ordinary DML, which you should know how to do, if you're a DBA. Example: for all the columns in all the tables in both databases, group by table name and column name, and select the groups that have more than one datatype or more than one precision. Or select the groups that only exist in one database.
You could use a third SQL server database as the metadatabase container if you like. I just like MS Access because it's so easy.
A more detailed explanation would require more details about what you are trying to accomplish.