In terms of stopping at stations , or sidings...
you could use this module
http://www.lenzusa.com/1newsite1/BM1.html
which uses ASB ( i think it lowers the voltage on one rail, which you tell the decoder ( such as zimo ) to look out for, and stop when it detects it ). Once the "effected" rail gets the correct voltage again off the train goes.
"A normal DCC signal is symmetrical meaning that the positive voltage and negative voltage is the same. In asymmetrical DCC there is a slight difference between the positive and negative components of the DCC signal. This is achieved by feeding the DCC signal through a set of diodes, three diodes in one direction and two diodes in the other direction. The information transmitted to the decoder can be further modulated by modulating the time the DCC signal is symmetrical and when it is asymmetrical."
you could then use something like an arduino to throw a switch/relay to restore the balance ( anakin skywalker ) and set the train off again. you could also use arduino nanos / minis and hall effect sensors to locate trains on track etc. etc...