done that mistake myself some time ago... yes, having many non-static non-batched meshes kills performance. The draw calls will add up.
Now I don't know much about the Irrlicht engine, but I might still make some general suggestions:
1) find a way to batch or instance animations and these non-static meshes... I haven't had to do that myself until now, but there are many online resources on what to do with crowd aniamtions. One of the oldest and most famous one must be this GPU Gem from Nvidia:
http://http.developer.nvidia.com/GPUGems3/gpugems3_ch02.html
No idea if this is still up to date, and of course it means you need to mess around with shader programming. Also it seems to use DX10 functionality so if you want to target DX9, that might not work for you.
Maybe have a look if Ubisoft published any article or postmortem on how they handle the crowd animations in Assassins Creed games.
2) Look up what DX12 brings in batching capabilities. I know, this might not help you today or even next year, but at some point, the Drawcall chokepoint we have today will hopefully go the way of the dodo, with the ability to batch even non-static non-instanced meshes into a single drawcall. How that will work, if it will help you in your scenario IDK, others might be able to help you more who had more exposure to DX12 yet.
And of course, just because 1000 animated characters do not need 1000x<amount of drawcalls per character> drawcalls doesn't mean it is a good idea to have that many characters running around without any kind of optimization. After the drawcall bottleneck is gone, it might be either the CPU or the GPU is choking on skinning 1000 characters individually...
3) Cheat more. If you have 1000 characters running around, do you really need them to be skinned characters... could you get away with unskinned ones? Can you create more aggressive LODs which include cutting out bones and simplifying animations if the camera is far away? Maybe even omitting animations for characters that are only the size of some pixels?
If you can do that, at least for the unanimated character instanciating and batching becomes much easier.