ohfercryinoutloud..!
This is driven purely by political motives. It has nothing to do with morality, nothing to do with religion, nothing to do with social norms.
Martin is using it to expert effect to put Harper in a box, and Harper, being none too swift on the uptake, swallowed it whole. Problem is, there are factions within Martin's own party who are uncomfortable with the concept of same-sex marriage (for religious or other reasons), which in effect is making Martin tar some of his own party with the same brush.
Harper continues to oppose - which is, of course, his obligation as leader of the official opposition - even though there are those in his party that disagree with him and support the same-sex issue.
Neither party wants to risk another election, because the war chests are nearly empty and, frankly, Canadians don't want another election so soon.
So, what's gonna happen?
When the vote is called, there will be a large number of Conservatives that will stay away from the House on that day due to "legislative flu", and the bill will pass. Martin will call it a victory for tolerance and justice and whatnot, and Harper will be able to maintain the support of his social conservative base by ensuring that all Conservatives that were in attendance at the time of the vote stood against the bill.
Then the sun will come up the next day and they'll be arguing about something else.