1. A method for providing users at one or more user equipment devices with access to a program, the method comprising: storing the program at a media server; caching a first portion of the stored program; maintaining a first playback pointer for a first interactive program guide, wherein the first playback pointer points to the cached first portion of the stored program; caching a second portion of the stored program; maintaining a second playback pointer for a second interactive program guide, wherein the second playback pointer points to the cached second portion of the stored program; receiving a first playback request from the first interactive program guide implemented on a first user equipment to play back the program; modifying the first playback pointer at the media server; distributing the cached first portion of the stored program, corresponding to the first playback pointer, to the first user equipment in response to receiving the first playback request; receiving a second playback request from the second interactive program guide implemented on a second user equipment to play back the program; modifying the second playback pointer at the media server; distributing the cached second portion of the stored program, corresponding to the second playback pointer, to the second user equipment in response to receiving the second playback request; determining that the first playback pointer is advancing towards an end of the cached first portion; in response to the determining: retrieving a third portion of the stored program, wherein the third portion corresponds to a portion of the program proximate to the cached first portion; and caching the retrieved third portion of the stored program.