Die Geschichte mit der Encodierung zu %7E hatte ich am Anfang auch mal getestet, macht jedoch keinen Unterschied, kommt aber im Log an:
Code
"GET /test.txt HTTP/1.0" 200 <-- klappt
"GET /~test2.txt HTTP/1.0" 404 <-- nicht gefunden
"GET /%7Etest2.txt HTTP/1.0" 404 <-- nicht gefunden
Die Webhosting-Pakete laufe auch mit Debian und anderen Einstellungen. Kann ja sein, dass der Server wirklich versucht die Dateien in einem nicht vorhandenen User-Verzeichnis zu öffnen und das Verhalten je nach Linux/Apache Konfiguration unterschiedlich ist.