Liffiton began his junior career with Aylmer Blues in the OHA-B before he was selected in the 16th round, 326th overall, in the 2000 Ontario Hockey League priority selection by the Plymouth Whalers. Joining the Whalers in the 2001–02 season, and developing as a physical stay-at-home defenseman, Liffiton recorded his best season statistically in 2002–03 with 5 goals for 16 points in 64 games to help the Whalers reach Western Conference finals against the Kitchener Rangers. He was subsequently drafted 63rd overall in the 2003 NHL Entry Draft by the Colorado Avalanche. In his final year with Plymouth in 2003–04, Liffiton's rights were included in a trade by the Avalanche, along with Chris McAllister, to the New York Rangers in exchange for Matthew Barnaby and a third round selection in 2004 on March 8, 2004. Signing an entry level contract with the Rangers on July 29, 2004, he began his professional career with Rangers ECHL affiliate, the Charlotte Checkers, before moving up to American Hockey League affiliate, the Hartford Wolf Pack for the majority of the 2004–05 season. In the 2005–06 season he continued to play primarily with Hartford and finished second on the Wolf Pack with 169 Penalty minutes. Towards the end of the season, the Rangers were hit with injury on the blueline and David made his NHL debut playing a solitary game against rivals the New York Islanders, registering 2 penalty minutes, in a 3-2 defeat on April 11, 2006. He played in two further games in the 2006–07 season with the Rangers, including his first NHL fight against the Boston Bruins'Jeremy Reich, but again remained entrenched as a physical force among the Wolf Pack blueline amassing 189 penalty minutes in 72 games. In his fourth season within the Rangers organization in 2007–08, Liffiton was limited to only 21 games with the Wolf Pack suffering post-concussion symptoms that kept him sidelined for the majority of the year. On November 4, 2008, Liffiton signed as a free agent to a one-year contract with Esbjerg fB of the Danish League, Oddset Ligaen. Upon Completing the season, he ended his European stint on July 13, 2009, and came back to North America initially signing a one-year deal with Syracuse Crunch of the American Hockey League. David was invited to Syracuse's NHL affiliate, the Columbus Blue Jackets, training camp for the 2009–10 season and was signed to a one-year contract with the Blue Jackets before he was reassigned to the Crunch on September 29, 2009. David spent the entire year with the Crunch, and developed a career season high with 5 goals, 15 assists and 20 points as the Crunch failed to qualify for the Calder Cup playoffs. As a free agent, David returned to his original draft team in the Colorado Avalanche, signing a one-year contract on July 2, 2010. He was then reassigned during the 2010–11 pre-season to the Avalanche's AHL affiliate, the Lake Erie Monsters, on September 23, 2010. His first NHL goal was scored on October 30, 2010 against Steve Mason of the Columbus Blue Jackets. With the return to health of Adam Foote, Liffiton was returned to the Monsters after 4 games with the Avalanche before suffering a season-ending injury. After his second season as captain of the Lake Erie Monsters, Liffiton left and signed as a free agent for his second stint in Europe, on a one-year deal with newly promoted Hockey Milano Rossoblu of the Italian Serie A on September 11, 2012. Prior to the 2013–14 season, Liffiton remained in Europe, agreeing to a try-out with Swedish club, Färjestad BK, on August 26, 2013. On May 27, 2015, Liffiton signed a one-year contract with Austrian club, HC TWK Innsbruck of the EBEL. After a season in Innsbruck, Liffton opted to leave as a free agent and return to Denmark in signing a one-year deal with Frederikshavn White Hawks of the Metal Ligaen on July 13, 2016.