We look at the expiration time as the answer to the question: "how stale can your data be and still be ok?" for anything that is remotely likely to fail to be invalidated. For us, 24 hours is what we use for general system-state data and cached search results. Nobody really cares or can tell if that stuff is less than 24 hours old, but if it got really stale it would become obvious.
Now for stuff that can't ever really afford to be stale, such as things that change because of user interaction, we generally fly by the seat of our pants and don't have that expire, because we have to be really careful about always invalidating anyway, since being off by a minute would be just as bad as being off by a day.
