This is because FortranForm, CForm et al are not properly functions, they don't evaluate. As a matter of fact they just change the out cell in the frontend. Same goes for InputForm, FullForm, TraditionalForm. Because of that they mostly just work in the frontend.
In order to achieve what you want you'd need to use ToString with two arguments:
In[49]:= ToString[1.23*^25, CForm]
Out[49]= "1.23e25"