This happened to me once sometime ago and I cannot remember anymore what I did that solved it.
I changed my VS project runtime library from multi-threaded dll to multi-threaded static. Now that I'm back to mt dll, it won't link even with a full rebuild. I get unresolved externals all over the place.
I've made a minimalist attempt with just the boost::regex library. Making changes to the runtime library and then going back to MT DLL, fails to link. I'm making sure I'm using the correct library by letting VS use auto-linking. Including the library myself (libboost_regex-vc90-mt-gd-1_39.lib) necessarilly doesn't work either. I'm not getting duplicate declarations. Just unresolved externals.