Thank-you
Your code has helped me establish that a rogue hex 0x00 is not the cause of the original error. I'll raise it with the 3rd party supplier - the string however does contain cyrillic and accented characters, and possibly some Japanese - so I'm currently using the binary chop method to isolate the offending rows.
Incidentally - when trying to create some test data, I found it is quite hard to put a hex 0x00 into a string - does SQL Server use that character as a string terminator?
Compare the results of these two
SELECT 'value' + char(0) + 'more value'
SELECT 'value' + char(65) + 'more value'
The first is cut off at the char(0) character