The code doesn't even have to be that old - in my indie game company, my partner and I often run into issues just moving code between my machine and his. Things like compiler versions, C++ library versioning issues, third party libraries. I never understood before why big businesses' IT departments are so conservative about upgrading and changing systems, until one day as I was spending my whole weekend fixing problems caused by (needlessly) upgrading to the latest version of GCC I had the epiphany, "You know, this was avoidable."
Did you have a separate build machine, preferably that built automatically on every checkin, so there was a canonical "it's broken here, but not there" point?
(Not that this avoids this problem, it's just - in my experience - it makes it easier to pinpoint and fix.)