The documentation is slightly different; 2005 BOL says that when "replacement_value" is returned, it will be implicitly converted to the type of "check_expression" while 2000 BOL just demands both expressions to be of same type.
This was the last straw for me, I haven't typed "ISNULL" into a code window since but switched to always using COALESCE.
Which I was expecting someone would mention. Perhaps there are circumstances where usage of ISNULL is warranted, but such use would require good commenting as most think of ISNULL and COALESCE as being equal.
COALESCE returns the full 10-character "replacement_value" in both versions.