Definitely… How are you planning on doing the movements of the characters? If you’re going to be using motion capture clips–or just baked keyframe animation–then it’s the most senible way of doing things.
Remember the things you mention–rendering, scene graph management and ik–should not really have anything to do with your crowd sim. You just want to concentrate on moving characters over a polyonal landscape by blending motion clips. All you need for that is an opengl preview. All the rendering and other stuff should be handled by your host program.
That helps integration with your host program itself as all you export back to it is a bunch of joint-cached skeletons, keeping it light-weight.
But you might also want to consider later on doing the skinning yourself, and ultimately rendering directly in renderman. After all, I don’t know a piece of software that can easily handle update and display 100,000 fully skinned, hi-res agents in near-realtime. Do you??
I think the thing with a project like this is it’s very easy to start thinking “wouldn’t it be cool if…”. You should just concentrate on doing the bare minimum UI stuff that you can to get the thing working. Concentate on the crowd sim. Churn out stick-figure opengl previews to start with (after all, they’re fun to watch!), then worry about getting it into C4D, Max, Maya, prman, or whatever.
Like Hugh says, if you do it completely outside an app, you can then write translators for any app you like much easier than trying to port application-specific code later on.
Also, for a project of this complexity, I’d advise scripting as much as possible. Do the low-level stuff where you really need the speed in small C++ modules that are tied together by a high-level language. This way you can take a lot of work off your shoulders, have a faster development time, and also allow end users to fiddle a lot more with the way the thing works to get the results they want.