If they're really date/time fields, then this is also a data-entry or input-masking issue: the mask allows a user to type in only a time, whereupon the system assumes the current date at data-entry time. Presumably both start and end time are entered within seconds of each other, so unless the data entry is done very, very close to the stroke of midnight, both times will have the same date. If the time data are imported from some file which has only hour and minute information, the same assumption is made: current date. That is, you're right, Bob, there has to be a way of entering "yesterday at 10pm" and then "today at 1am" to avoid issues.
But I have a question about your formula: if they really are date/time fields, then the result of subtracting them is a floating-point number representing days or fractions thereof, right? If so, I believe your formula should be revised to:
[StopTime]-[StartTime] + IIf([StopTime] < [StartTime], 0.5, 0)