Actually, that is a fair point... I dont think it will be a problem in the majority of cases though, unless you were removing a word that was negative in length (which is just silly). I think strcpy just does a byte for byte copy, so it is pretty safe.
If it makes you happier, stick this line in my function before the strcpy:
*ptr = 0;
Now the two strings dont overlap any more.