We already had a similar question before.
If a number string can be converted to any numeric type, ISNUMERIC returns 1.
Among the known "issues" with this are:
money: 1,,,,,,1 is a valid money value (obviously it does not make sense though)
float: 1e1 is a valid float value
float: 1d1 is a valid float value
IsNumeric is consistent in the way that it verifies that it can convert to any SQL Server numeric data type (which includes monetary datatypes & float).
So blame it on the conversion functions instead:)