Remember the argument at the time? "It's unconstitutional, scotus will strike it down". So he signed it. (the "New Tone" and all that crap) What kind of conservative "constructionist" signs a bill he knows to be unconstitutional?
I do solemnly swear (or affirm) that I will faithfully execute the office of President of the United States, and will to the best of my ability, preserve, protect, and defend the Constitution of the United States.
I seem to remember some sources said McCain would have challenged Bush either for the nomination or as an independent in 2004 if he had not signed this. Maybe Bush thought he owed McCain after some of the bitterness in 2000. Since it was thought the Supreme Court would rule against it maybe he thought it was best to just sign it. Still, all things considered, he should have vetoed it as he said he would in the 2000 primary campaign.