
... cargas un archivo con un script PHP, pero si el archivo existe, no lo sobre-escribe.
Pues estará mal tu script, borrar el directorio es una mala solución (aunque sí, solución al fin). Como sea, puedes hacerlo con unlink() (que igual podrías utilizar en una validación de existencia del archivo).
www.php.net/unlink // Para borrar archivos
www.php.net/opendir // Para leer el directorio
www.php.net/move_uploaded_file // Función que se utiliza al subir archivos por POST (y los sobre-escribe)
Lo siento, no tengo una función a la mano, será fácil implementarla (de hecho, mira en los comentarios de los enlaces que dejo).
Suerte