I found an excellent article about making makeup last all day. 

When you have a special occasion to go to, you want make-up that will last all day

A Good Base
The key to having long lasting makeup that looks fresh from morning to night is – a great base.  A base is everything that’s done to the skin before applying makeup, like exfoliating, moisturizing and the use of primer.

Exfoliating – is a really important step – that I would suggest to do once a week – to remove any dry, dead skin cells that lye on the surface of the skin.  This will ensure your makeup application looks fresh and flawless.

Moisturizing – with a cream or lotion is a must and should be applied to the skin at least 5 to 10 minutes prior to applying foundation so that it has time to dry and absorb into the skin. Otherwise, the foundation will just slide all over the place.

Extra Tip:  If you don’t have time to kill in the morning – try using your blow dryer, on the cool setting to set your moisturizer in seconds.

A Primer – is used to help prep the surface of the skin for a smooth long-lasting foundation application and wear.  A primer is not something I think you have to use everyday, but for those special occasions when you really want your makeup to last – it’s a great option.

read more at: http://www.cbc.ca/stevenandchris/2010/03/makeup-that-lasts-all-day-long.html