One of the reasons they may not be deleted is because they are currently "in-use." Files that are being used by the system will not be removed.
Most programs create temporary files, these files are "locked" when the programs are running, and are supposed to be unlocked when you exit the program.
When the program is shutdown, these files should be removed, but they often aren't due to program crashes.
These files then become stale files.
You can reboot the system, and instantly after logging back into your system try to delete those files once again without opening any programs.
But many programs maybe pre-loaded when the system starts up, creating temp files.
What you may want to do is find a program which will reboot the system and delete these files.
You can do this yourself, but it requires being familiar using the DOS operating system. I've often written batch files which would run when shutting down or booting up that would remove these files.
But you may be more comforatble using a program to do this.
CCleaner Freeware
CCleaner is a freeware system optimization and privacy tool. It removes unused files from your system - allowing Windows to run faster and freeing up valuable hard disk space. It also cleans traces of your online activities such as your Internet history. But the best part is that it's fast (normally taking less that a second to run) and contains NO Spyware or Adware!