Basically, spaces are NOT legal in URLs. Apparently some clients will send them anyway, forming illegal HTTP requests.
HTTP requests actually look like this:
GET /pub/WWW/TheProject.html HTTP/1.1
Host: www.w3.org
If you send an illegal space, it will look like this:
GET /pub/WWW/The Project.html HTTP/1.1
Host: www.w3.org
Apache handles the error by processing the request as if it is HTTP/1.1, and stuffing the unknown bogus protocol into $SERVER_PROTOCOL, where you can retrieve the rest of the URL.
You then can reconstruct the URI and figure out what to do.