You could set eth0 to start at boot and ppp0 not to do so, but set ppp0 to be managed by users, so you can start it from net_applet/net-centre.
That way, on boot, eth0 would connect automatically if available, but ppp0 would only connect when you start it manually.