WCF can work as a listner to MSMQ messages using
netMSMQBinding
without any support of any other mechanism like Windows Service etc.
Sometimes it is preferred to keep MSMQ on both Servers Sender and Reciever, Considering in case if Reciever Server is down then you will have your messages in waiting mode in Sender Server's Queue.
In case if you want to avoid MSMQ on Sender's Sever then you can use
MessageQueue.ReceiveByCorrelationId
Method to make your Remote Message transactions more reliable. Below article has information on this.
http://beaucrawford.net/post/MSMQ-ndash3b-Sending-Messages-to-Remote-Queues.aspx
You may refer below link for more information on
MessageQueue.ReceiveByCorrelationId
Method.
http://msdn.microsoft.com/en-us/library/4f31cxs4.aspx