I believe you have to change the actual physical size of the collision primitives, not just scale them.
That would pretty much be the definition of scaling. ;)
What I mean is if you consider the mesh you get from a 3d program, its physical size never changes when you scale it. The matrix you use when you pass it to the graphics device changes, but the actual vertex data does not. That is scaling. It is my understanding from every physics system I've worked with (Newton, PhysX, and now JigLibX) is that you cannot "scale", in that you cannot pass a parameter without changing the stored data. The only way to do so is to actually change the data.
I also find it hard to believe that generating a new triangle mesh every frame is not an expensive operation, at least relative to changing a sphere, capsule, or box every frame. Compare changing 1, 2, or 3 floats (respectively) to changing 3 * NumVertices floats + 3 * NumTriangles integers (for the index buffer).
However, I agree that you need to do such changes gradually. One just needs to be aware of the costs, and take steps to mitigate them.