Haines played junior club football at South Mandurah,[1] and played Colts football with the Peel Thunder shortly after it joined the WAFL in 1997, and broke into its senior team in 1999.[2] He was drafted to the AFL by the Fremantle Dockers to its rookie list in 2001, and was elevated to the senior list at the beginning of the 2002 season. He made his senior AFL debut in Round 6, 2002, against Essendon at Domain Stadium.
He was delisted at the end of the 2004 season, but redrafted by Fremantle with selection 69 in the National Draft. After playing a total of 16 in 2002 and 2003, numerous injuries to his knee, big toe and Achilles tendon kept him out of the senior side and he was finally delisted at the end of 2006.
Throughout his career at Fremantle, he continued to play senior football for Peel when he was not selected in Fremantle's AFL team. Following his delisting from Fremantle, he considered a move to South Australia to play in the SANFL,[3] but ultimately remained at Peel. He played a total of 128 senior games for Peel from 1999 to 2010, before retiring after a knee injury.[4] He won the Peel Best & Fairest in 2004 and 2007, and was club captain from mid-2008 until his retirement.[5]