Yeah, moving to Source would be smarter than implementing such a thing in HL1. Some of these things you can do manually, you make an invisible brush of similar shape inside the model for it to cast shadows and to have player/bullet collision. If you have really big models and their poor lighting makes them look out of place, you can try to bake some shadows or some ambient shadowing on their textures, I've seen this done with Blender for HL1, but then you could just make them out of brushes and since vluzacn's tools have a great entity called func_detail you can do great things with brushes now in HL1.