Another possibility to check whether a file has been uploaded is:
if(!$userfile_size) {
echo "Either you did not upload any file, or you uploaded an empty file!";
}
if(!$_FILES['userfile']['size']) {
echo "Either you did not upload any file, or you uploaded an empty file!";
}
but I think your check is correct.
I think the connection between clients and server is not the best on. If all clients have the same problems, ask your provider if he can determine if your server connection to the internet is ok, (timeouts, bandwith, ...).