Pretty sure your sed does not understand \S
to mean "non-whitespace". It's most likely trying to match "zero or more S
characters", and it finds that match at the beginning of the string.
You want to stick to the POSIX character classes:
sed 's/[^[:blank:]]\+/& ~ /' file1.txt