Prefetch is relatively simple, at least conceptually. It monitors OS bootup and the first (IIRC) 10 seconds of each process startup, and makes a list of the code and data pages of memory which were accessed during that time.
For each process, it then stores a *.pf file in the \prefetch folder which simply describes all the stuff that needs to be loaded during that 10sec interval. The next time a particular process is started, prefetch causes the disk heads to move as little as possible (they follow a linear path) in order to grab all that data.
There's also a link to the system defragmenter. If a bunch of pages are observed to be regularly loaded into memory at the same time, the defragger will place them consecutively on the disk, irrespective of whether they're fragments of different files (exes or DLLs). In a way, prefetch is more about disk scheduling than anything else.
Superfetch is a Vista thing which is more difficult to explain. The short version is that it causes pages of memory which have been recently pushed out of a processes working set (portion of the process that's in RAM) to be paged back in at a low priority. There's also a "historical" aspect to it - the user's past activity influences what superfetch preloads into RAM.
Either way, the answer to your question is "load the PPT file into the app yourself". If you do it within the first 10sec of the process starting up, prefetch will help from then onwards. Otherwise, superfetch will eventually work out that this thing is important to you.
FYI, in both cases the unit of access is the "page" (4KB on x86), as opposed to entire files. These mechanisms don't directly understand the concept of files in the PPT, DOC, XLS(...) sense.