Winter 2006 XC northbound timetable from Reading
'Bournemouth side' of the hour
0610 Manchester (0511 SOU-MAN)
0710 Edinburgh (0615 SOU-EDB via LDS/NCL)
0810 Edinburgh (0630 BMH-EDB via MAN)
0910 Edinburgh (0730 BMH-EDB via LDS/NCL)
1010 Manchester (0846 BMH-MAN)
1110 Edinburgh (0946 BMH-EDB via LDS/NCL)
1210 Edinburgh (1046 BMH-EDB via MAN
1310 Glasgow (1146 BMH-GLC via LDS/NCL)
1410 Manchester (1246 BMH-MAN)
1510 Edinburgh (1346 BMH-EDB via LDS/NCL)
1610 Edinburgh (1446 BMH-EDB via MAN)
1710 Newcastle (1546 BMH-NCL via LDS)
1810 Manchester (1646 BMH-MAN)
1910 Leeds (1746 BMH-LDS)
2010 Manchester (1846 BMH-MAN)
2110 Birmingham (1946 BMH-BHM)
'Reading side' of the hour
0640 Manchester (0515 GTW-MAN via GLD)
0740 Manchester (0545 GTW-MAN via GLD)
0840 Manchester (0840 RDG-MAN)
0940 Manchester (0940 RDG-MAN)
1040 Manchester (1040 RDG-MAN)
1140 Manchester (0921 BTN-MAM via KPA)
1240 Manchester (1240 RDG-MAN)
1340 Manchester (1340 RDG-MAN)
1440 Manchester (1440 RDG-MAN)
1540 Manchester (1540 RDG-MAN)
1640 Manchester (1422 BTN-MAN via KPA)
1740 Manchester (1740 RDG-MAN)
1840 Manchester (1757 GLD-MAN)
1940 Manchester (1940 RDG-MAN)
The purpose of the odd Guildford extension in the evening was to balance the gap between the northbound and southbound Brighton services.
BMH = Birmingham, SOU = Southampton Central, BTN = Brighton, GTW = Gatwick Airport, GLD = Guildford, KPA = Kensington Olympia, RDG = Reading, BHM = Birmingham New Street, MAN = Manchester Piccadilly, LDS = Leeds, NCL = Newcastle, EDB = Edinburgh, GLC = Glasgow Central
All you need to know is here
http://www.1s76.com, in particular for 1990-1991.
Simple answer is probably that Derby was a carriage sidings for CrossCountry services.