Bueno, hay cosas que no son del todo ciertas
TCP viene de Transmission Control Protocol, y como su nombre indica, sirve para controlar la transmisión. Cuando el servidor envía un paquete al cliente, éste último replica con un paquete de OK, comunicando que ha llegado correctamente. En caso contrario, el servidor reenvía el mismo paquete.
Ejemplos de servicios que lo usan: Servidores web, FTP, e-mail (si no se utilizase ¿cómo sabrías que el mail llegó al servidor?), e incluso Emule.
UDP viene de User Datagram Protocol, y se usa cuando la información que se transmite no tiene importancia que se pierda. Es muy parecido a TCP, pero no existe la confirmación de llegada.
Los ejemplos más evidentes son los juegos online: cuando el servidor informa al cliente (el jugador) de los datos de la partida (posiciones de los demás, etc), y el paquete llega corrupto, no merece la pena que el servidor reenvíe el paquete, ya que en ese momento la posición del resto de jugadores ya ha cambiado. Además así se ahorra ancho de banda, que en conexiones no muy buenas está intimamente relacionada con el lag.
Saludos