Expand doesn't work as you'd like even with Trig -> True. TrigReduce yields the experssion a bit different than expected. Instead, you can use Apart with the option Trig therein (by default Options[Apart, Trig] yields {Trig -> False}) to get exactly the expected output, e.g. :
Apart[ Cos[x]^3 Sin[x]^2, Trig -> True]
Cos[x]/8 - 1/16 Cos[3 x] - 1/16 Cos[5 x]
exploiting your approach one could do this :
Unevaluated[ Expand[ Cos[x]^3 Sin[x]^2, Trig -> True]] /. Expand -> Apart
or
(Expand /. Expand -> Apart)[Cos[x]^3 Sin[x]^2, Trig -> True]
another ways use both Apart or Expand composed with TrigToExp and its "inverse" ExpToTrig :
ExpToTrig @ Apart @ TrigToExp[ Cos[x]^3 Sin[x]^2]
or
ExpToTrig @ Expand @ TrigToExp[ Cos[x]^3 Sin[x]^2]
Edit
Let's write all functions with the Trig option :
Select[ Names["*"], ( Length[ Quiet[ Options[ ToExpression @ #, Trig]]] == 1) &]
{"Apart", "ApartSquareFree", "Cancel", "Collect", "Denominator", "Expand",
"ExpandAll", "ExpandDenominator", "ExpandNumerator", "Exponent", "Factor",
"FactorList", "FactorSquareFree", "FactorSquareFreeList", "FactorTerms",
"FactorTermsList", "FullSimplify", "Numerator", "PolynomialGCD",
"PolynomialLCM", "PolynomialMod", "Simplify", "Together"}
For their default settings :
{#, Quiet[ Options[ ToExpression @ #, Trig]]} & /@ %
Mathematica? – Artes Dec 30 '12 at 21:49