integrate((1+tan(x)^2)/tan(x),x);



> I won't say that I like the outcome of this one:
> 
> integrate((1+tan(x)^2)/tan(x),x);
> 
> Please try it and comment on it!

I think the algorithms that are described in Manuel Bronsteins book
    Symbolic Integration I
would answer 
  log(tan(x))


With Maxima, I managed to do this:

int: 'integrate((1+tan(x)^2)/tan(x),x);
changevar(int, tan(x) - y, y, x);
ev(%, Integrate);
%, y=tan(x);

This is an example of what I call a "guided computation", but I 
find that guided computations give often quite acceptable results.

Greetings,
Boris