Why do you think Facebook and Google would do it if there were another way?
Well, OK, there are other ways. You could embed a Java applet in the page. If the Java applet is signed, and the user gives it permission, it could open up a long-running connection for the server to send it events. But that would get you something that was more fragile, required more user interaction, was slower to start up, and would work on fewer platforms than Comet.
There has been some discussion of adding server-sent events and web sockets to HTML5, but that's extremely preliminary and probably won't make it into the standard.