It's amazing how much data is accessible through Web services these days. Everything from weather, to stock quotes, to language translations are available for consumption. Take a moment to scan through the services shown on XMethods.com to see the wide variety of services that are out there.
If you want to consume remote Web services in your ASP.NET AJAX applications you'll quickly find that the ScriptManager can't generate a client-side proxy object that can be used to call the remote service. This isn't because the ScriptManager is lacking any functionality, it's because the XmlHttpRequest object built-into all major browsers only allows calls back to the same domain from which the page originated (and because ASP.NET AJAX requires JSON messages rather than SOAP messages in order to work cross-browser). This restriction is added for good reason in an attempt to circumvent various forms of cross-site scripting attacks. So what do you do if you need to consume a remote Web Service in your ASP.NET AJAX pages?