Cabe mencionar lo de los permisos respectivos para el archivo, si resulta que el archivo fue subido por FTP, lo más probable es que PHP por medio de unlink() sea incapaz de eliminar el archivo ya que Apache corre normalmente con otro usuario. Se podrian explicar muchas posibles cusas pero esto es lo primero.
Caso contrario podría suceder con Windows.
Saludos