Procedure I wrote which does this all for you:
create procedure dbo.fn_tablecompare(@table1 varchar(20), @table2 varchar(20))
as
begin
declare @sql nvarchar(max)
set @sql = ''
select @sql = @sql + 'select max(len(' + COLUMN_NAME + ')) columnlength, ''' + column_name + ''' columnname from ' + TABLE_NAME + ' union ' from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = @table1
set @sql = LEFT(@sql,LEN(@sql)-5)
set @sql = 'select isnull(columnlength,0) columnlength, b.character_maximum_length, columnname from (' + @sql + ') a join information_schema.columns b on (a.columnname = b.column_name) where b.table_name = ''' + @table2 + ''' and a.columnlength > b.character_maximum_length'
exec (@sql)
end