It depends on what you want to do

.
-If you just want to cast a shadow under your character, then I'd use the flat plain idea. This is probably the fastest way.
-If you want a more detailed shadow for your character, then use SET SHADOW SHADING ON (I would use this command sparingly though because it can lag!).
-If you're making a map in 3D World Studio or something and you want the map to cast multiple shadows from multiple light sources then the fastest way might be light mapping (you would create this lightmap in 3D World Studio or a similar program, like Map Scape. Map Scape can be found on the same site that I linked to before). Bear in mind that these shadows will not be cast onto any characters walking through the world.
-If you're particularly daring and you've got a fast computer, then the shaders are the best-looking way to make shadows. On EVOLVED's website (the site I linked to before) there is an Advanced Lighting system that can handle multiple lights and looks amazing. It's slow though. I believe Green Gandalf posted a different shadow shader in the Learning to Write Shaders thread a little while ago as well.
My two favorite methods right now are light mapping and SET SHADOW SHADING ON. If I restrict myself to character shadows (and set the UseShader flag to 1) then I can usually get away with using SET SHADOW SHADING ON with little lag. It's an easy command to use and the shadows are cast onto all of your objects. It can be used on 3D worlds too but it can cause a slowdown depending on how complex your world is.
Light mapping is fast and convenient, and it is almost a must for any 3D world you might model.
In the game in my signature I used SET SHADOW SHADING ON and light mapping. In my other game (RND Sprint) I used SET SHADOW SHADING ON in combination with a blur shader I edited to smooth the edges. (This technique is similar to the "Soft Shadows" example on EVOLVED's website)
I hope this helps

Guns, cinematics, stealth, items and more!