Lam was born in Auckland and attended St Peter's College, Grafton, and captained the New Zealand Secondary Schools rugby team. He played at loose forward for Auckland, North Harbour and Crusaders, before moving to England where he first played for Newcastle Falcons. In his first season at Newcastle he made 22 appearances as they won the 1997-98 Premiership. However, after that triumph he moved on to Northampton Saints, with whom he won the 1999–2000 Heineken Cup. Lam moved back to Newcastle Falcons for the 2001–02 season, playing with the club for a year before retiring.