MsSQL string replace function for Text datatype

In MsSql, I tried to replace a string 'vm-1' to 'vm001' in all rows for a specific column of text datatype.

UPDATE [PatientImages]
SET [ImageLocation] = replace([ImageLocation],'nt3ks-vm1','nt3ksvm001')

But compiler slaps me and and said,
"Argument data type text is invalid for argument 1 of replace function".
I know the replace function works for character and binary types.
I tried again and again,then i found that it will work for char,varchar types and not for text datatype.
finally i replaced the content by type casted the value to varchar as below

UPDATE [PatientImages]
SET [ImageLocation] = replace(Cast(ImageLocation AS NVARCHAR(Max)),'nt3ks-vm1','nt3ksvm001')

i start to think why this text datatype is not supported in replace function.
then i come to know Text datatype is a deprecated datatype in sql2005, instead of that we have to use any one of NVarChar(Max), VarChar(Max) or VarBinary(Max)