When you add the object to the Cache, you can specify the expiration policy (absolute, sliding expiration).
Cache.Insert("CacheItem", yourobject,
null, DateTime.Now.AddHours(3),
System.Web.Caching.Cache.NoSlidingExpiration);
See here for a more detailed explanation.
Here's some reasons why an object may be removed from Cache:
ASP.NET can remove data from the cache for one of these reasons:
Because memory on the server is low, a process known as scavenging.
Because the item in the cache has expired.
Because the item's dependency changes.
To help you manage cached items, ASP.NET can notify your application
when items are removed from the cache.
Scavenging
Scavenging is the process of deleting items from the cache when memory
is scarce. Items are removed when they have not been accessed in some
time or when items are marked as low priority when they are added to
the cache. ASP.NET uses the CacheItemPriority object to determine
which items to scavenge first. For more information, see How to: Add
Items to the Cache. Expiration
In addition to scavenging, ASP.NET automatically removes items from
the cache when they expire.