Unlike traditional web services, WCF provides many different ways to communicate with a service. These are primarily driven by the bindings as configured via the application configuration file or the web configuration file. Aside from the contracts, the binding heavily depends on what you are trying to expose and how applications will leverage it.
basicHttpBinding: use for supporting legacy clients that expect ASMX service, does not implement security by default, defaults to no credentials just like ASMX services
wsHttpBinding: WS-Reliable Messaging, WS-Security, http transport, text/xml encoding, mesage security with windows authentication by default
ws2007HttpBinding: WS-Reliable Messaging, WS-Security, http transport, text/xml encoding, binding similar to wsHttpBinding but uses OASIS, message security with windows authentication by default
netTcpBinding: optimized for cross-machine communication, generates runtime communication stack with transport security and windows authentication by default, tcp protocol, binary message encoding, must be hosted in Windows Service or IIS7 via Windows Service Activation
netNamedPipeBinding: optimized for on-machine cross process communication, generates runtime communication stack by default, WS-Reliable Messaging, transport security, named pipes for message delivery, binary message encoding, not secured by default, must be hostedin Windows Service or IIS7 via Windows Service Activation
netMsmqBinding: queued binding for cross-machine communication, used for disconnected queuing, queuing provided by MSMQ as transport, supports disconnected operations, failure isolation, load leveling, use for when client and service do not both have to be online at the same time, must be hosted in Windows Service or IIS7 via Window Service Activation
wsFederationHttpBinding: federated security, used in implementation of federation, wcf implements federation over message and mixed mode security but not over transport security, must use http protocol as transport
ws2007FederationHttpBinding: similar to wsFederationHttpBinding but uses OASIS. Commonly used in integrating with STS services.
wsDualHttpBinding: duplex service contracts over http binding through SOAP, similar to wsHttpBinding but leveraged for duplex services. Does not allow hosting in IIS5 or IIS6, host in Windows Service or IIS7.
customBinding: Describes a full binding channel with elements through protocol binding elements, message encoding binding elements, transport security binding elements and transport binding elements.
Protocol Binding Elements: Transaction Flow, Reliable Messaging, Security
Message Encoding Binding Elements: Text, MTOM, Binary
Transport Security Binding Elements: Windows, SSL
Transport Binding Elements: HTTP, HTTPS, TCP, Named Pipes, MSMQTransport, MSMQIntegration, P2P
As I mentioned each of these bindings has there own purpose. You can see that from the custom binding you can create your own configuration for how clients and services communicate with the behavior of the exposed service. You'll find that contracts and code written will, for the most part, never change when it comes to WCF. There's no reason not to create web services through WCF anymore since you can leverage any kind of communication protocol you want and throttle, secure, integrate with any system your project needs.