To further comment, I have found that there is a wp_check_filetype function in wp-includes/functions-post.php ~ it has a very similar structure to the original file.
*** I have now managed to fix the problem ***
First, I deleted functions-post.php on the remote server. Refreshing the Admin/Write page gave an error (could not find file) which was a 'good sign' inasmuch at leats it proved to me that the page was being imported.
I then uploaded the file to the server again, and this time refreshing the Write page worked (good, it now had the new file). And hey presto - file uploads now work without the error message.
This suggests that my internet host does some very odd caching in their PHP implementation. In fact, thinking about it, I think that I have had similar issues with caching before, not necesarily with PHP but other things. How this change managed not to be propagated for weeks is beyond me though,
Nij