This would work well with a moving spotlight.
Edit: The only problem would be matching the proper shadow scale in a scene. The closer an object is to the surface it casts a shadow on, the closer the size of the shadow to 1:1 scale it shall be. The problem here of course is in a room lit with multiple sources, one must painstakingly measure the proper trajectory of each object's shadow.
Working in radiant, this would probably be impossible... However, you can convert your map to ASE, load it in 3D Studio Max and give the whole thing a generic texture, and then use render to texture to create the lightmaps.
Once this is achieved, you can use the lightmaps as a source to trace onto, and then model the
shadow volumes into the proper scale.
Soft shadows can be achieved using this same method. Simply duplicate the
shadow volume twice and enlarge each ever so slightly, and apply a lighter shader onto each as you move out. The levels of shadow fidelity are endless, only limited by the capabilities of our video cards. For an object such as the cross in the example scene it wouldn't be too taxing to duplicate the
shadow volume in this manner to produce said effect.
edit: True gradient shadows can be achieved as well by segmenting the
shadow volume model into partitions corresponding with the direction of the light. For example, if you have a flashlight on a plane projecting on a shape, you can do one of two things for an accurate shadow; Create a simple shadow texture on a plane that includes the degradation of the shadow after distance, which would be slapped on a single plane close to the surface like a decal, or for a dynamic shadow you would slice it into pieces and animate each accordingly.
The distance of a light source dictates the character of the shadow. The closer the light is to the object, the smaller and more solid the shadow will appear. As the light source moves away from the object, the shadow not only enlarges opposite the direction of the light, but it diffuses due to the loss of intensity. This effect can be achieved with these methods, using a stepped procedural model/shader combination. The more steps, the more realistic it will look. The less steps, the more banded it will appear.