Inserisci una fprintf per vedere se il blocco di codice dell' if viene eseguito:

codice:
TList Ricerca_Nodo_Da_Eliminare(TList lista, char nome[]){
    TNode *prec=NULL, *curr=lista;
	while(curr!=NULL && strcmp(nome, curr->info.nome)>0){
		prec=curr;
		curr=curr->next;
    }
	if((curr!=NULL) && strcmp(curr->info.nome, nome)==0){
                fprintf(stderr," **** ");
		if(prec==NULL)
			lista=curr->next;
		else
		   prec->next=curr->next;
		Elimina_Nodo(curr);
    }
	return lista;
}
Se non vengono stampati gli asterischi significa che non entra nell' if, e che la parte da correggere è quella precedente.
In tal caso prova a stampare tutti i risultati delle strcmp eseguite.