Paulo, eu também errei, pois fiquei entre a C e a E. Mas vamos as alternativas.
A. Correta. A interface Servlet declara os métodos de ciclo de vida dos servlets: init(ServletConfig s), chamado quando o servlet é inicializado; service(ServletRequest req, ServletResponse res), chamado para tratar as requisições dos clientes e enviar as respostas; destroy(), trata da destruição do servlet e liberação de recursos.
B. Correta. Todo servlet precisa de um container para ser executado.
C. Errada. Não é o container que envia solicitações para o servidor, quem as envia é o cliente. As quatro principais etapas são:
1. Cliente envia solicitação ao servidor;
2. O servidor invoca, através do seu container, o servlet indicado para a solicitação do serviço solicitado;
3. O servlet gera o conteúdo em resposta a solicitação do cliente;
4. O servidor repassa o resultado gerado pelo servlet para o cliente, em geral, como uma resposta HTTP convencional.
Ref: http://miscelaneadoconhecimento.com/java/servlet/javaservlet.html
D. Correta. Conforme explicado na letra A, o método destroy libera os recursos usados pelo servlet.
E. Correta. Todos os servlets devem implementar a interface Servlet. Existe a classe GenericServlet e a HTTPServlet. Ambas implementam a interface Servlet, a primeira de forma direta, e a segunda de forma indireta, já que HTTPServlet é uma especialização de GenericServlet.
É mesmo uma discussão e tanto esta questão: Em modelagem (UML), a interface pode ser vista como um protocolo de comportamento, ou seja, uma lista de métodos abstratos com ou sem variáveis. E para usar esta interface, é preciso criar uma classe que implemente tudo isso.
De fato, a resposta C está certa. Ou errada neste caso, porque o servlet (servidor) recebe uma solicitação http, processa e devolve para o cliente.