For larger projects I break things into several files.
For example, in an RPG I might have one file for core functionality (such as tick function), another file for the profile saving/loading, another for class system, etc.
For a typical gun or vehicle or something, you shouldn't need more than one file for the datablock definitions, and if it has a large amount of script to go with it, maybe another support_ file (thought I usually just throw my script after the datablocks)
On a related note, one thing that annoys me: server.cs files that contain nothing but one exec call to exec another file that has all the add-ons code in it.