Jup, wie Jan sagt, es kann auch der Hoster Schuld sein. Natürlich geben die es dann meist aber nicht zu.
Einige Hoster führen PHP-Skripte unter seltsamen Usern / Gruppen aus, die künftig dann die Rechte auf die hochgeladene Datei (Bild) haben.
Ergebnis, nicht mal der FTP-User kann die Dateien löschen.
In der Regel hilft wie oben schon beschrieben, der Web-FTP des Hosters.
Bislang kenne ich das Problem hauptsächlich dann, wenn PHP als Modul läuft und nicht als CGI. Kann man per phpinfo ermitteln.
Außerdem kannst du z.B. mit dem FTP-Programm Filezilla vergleichen, welcher Benutzer / Gruppe hinter einer Datei steckt, die per PHP (also z.B. über den Shop) hochgeladen wurde und einer Datei, die du per FTP hochgeladen hast.
Unterscheiden sich beide, dann hast du dein Problem gefunden. Dann liegt es an PHP und damit am Hoster...