Sen. Arlen Specter in March 2009: "To eliminate any doubt, I am a Republican. I am running for reelection in 2010 as a Republican on the Republican ticket."
Sen. Arlen Specter in April 2009: "I have decided to run for reelection in 2010 as a Democrat. I find my political philosophy is now more in line with the Democratic party."
My guess would be that Sen. Specter's campaign advisors told him the Pennsylvania Republican ticket will be very unpopular this November. Specter does not care about political philosophy, he cares about doing whatever it takes to retain his position of power.