This is because you are passing in a valid money data type so this will return true
from BOL
ISNUMERIC returns 1 when the input expression evaluates to a valid integer, floating point number, money or decimal type; otherwise it returns 0. A return value of 1 indicates that expression can be converted to at least one of the numeric types.
I consider ISNUMERIC to be a slightly misleading and possbile dangerous function to use when not fully understood. It is different than a function that will tell you wheter a value contains only numbers and nothing else.
A better what to go about this could be to use PATINDEX, this will only return true where the column contains only Numbers
DECLARE @profile CHAR(10)
IF PATINDEX('%[^0-9]%', '£123432345') = 0
SET @profile = 'NUMBER'
ELSE
SET @profile = 'CHAR'
SELECT @profile
Note: this is not a pefect example as it will dissallow numbers with a decimal place (.) however you can modify the PATINDEX to meet your business requirements