well OnCellLoad would trigger whenever a cell loads, but they're loading and unloading all the time, even when running around.
Does the player get an OnInit event after the loading screen? That might be a good event to use...you could store the previous cell's Indoor/outdoor status, and if the player is doing a loading screen from one outdoor cell to another, he is either fast travelling, using a horse cart, or going through a city gate. What you probably want is to save the game time periodically and check for big jumps where the time jumps forward much further than an ordinary loading screen time jump.