In reply to lithos:
Various reasons for drug shelf life limits:
1) The active ingredient degrades over time to become less effective.
2) The active ingredient degrades over time into impurities which may not be safe.
3) The drug develops rather more biology than you'd like.
4) The carrier or mechanism for taking the drug becomes less effective over time.
5) Because the manufacturer didn't want to invest time in doing long shelf life studies because they are pricey and awkward. If you've got a short supply chain and fast turn over then why would you waste time registering a 3 year shelf life if people don't stockpile the drug?
Depending on the type of drug which of these issues is most important will vary. Generally I'd avoid taking out of date medications unless you know why the shelf life was set that way and I doubt that information is available unless your hands on the registration documents.