My simple rules:
* Trains can only stop on the section after a regular signal. If you don't want a train to be able to stop in a certain place (like on an intersection), don't use a regular signal in front of it.
* Make sure trains have places where they can stop. This will mostly be stations, but that's not enough. Actually, I've been wondering if it might be enough for stations that are only visited by a single train; then the train would only go if it has a clear path straight to its destination. Maybe I should give this a try. For me, however, the straights outside the intersections are usually fine places for trains to stop. But for better throughput and less blockage, there should probably multiple tracks, and special tracks for trains waiting to enter a station currently occupied by another train.
* Trains cannot pass a signal on their left if there's not also a signal on their right. You can use this to make certain tracks single-direction. Single-direction is good and easier than double-direction, so of course I mix them, because I'm not playing this game because I like things easy.
* Don't forget to give your trains a place to refuel! This is actually the part I mess up the most.