I shouldn't be writing this since Dino Esposito said in his ASP.NET call backs session, “Plumbing is evil“; It was mentioned in in the context that a developer shouldn't have to worry about plumbing but concentrating mainly on the underlying business logic. However there are times when knowing your plumbing options are important. Somehow for several people I know, including myself, in the back of our heads the words web services and HTTP are intermingled like synonyms; Simon Guest's article “Planes, Trains and Automobiles: Choosing Alternate Transports for Web Services” published in Microsoft Architecture Journal 5 is a good read if you want to scratch this out of your head.
Long ago in a Los Angles .NET developers group meeting, Jefferey Hasan also mentioned that WSDL can define TCP as web service end points; this was enough turning an HTTP zealot's world upside down. It's becoming more and more a config change with upcoming Windows Communications Framework (Indigo). But if you think about it, it's all good to fulfill the interop promise; eventually we all want to get along, don't we?