In Radiant, you have to surround the model with clip brushes. COD2 has lots of prefabs where this has already been done for you. Just look in map_source/prefabs for an idea how to copy what the developers did.
When dynamically spawning a model, you cannot make a script_model solid. The only way to work around the problem is to spawn a trigger_radius on the model, and set the contents to 1:
PHP Code:
makesolid = spawn( "trigger_radius", model.origin, 0, 20, 20 );
makesolid setContents( 1 );
However, the drawback with this is it eats into your max number of spawned entities, and on maps which have lots of models and spawnpoints, you can crash a server with the "g_spawn: no free entities" error. So, don't overdo it. You can't fill the map with lots of trigger_radius just to make models solid.