First of all, DO NOT use the automatic leveling (Tools, Resource Leveling,
set to Manual) - it can really give strange behaviors. But be that as it
may, the default leveling behavior does take into account task length among
a number of other factors involved in deciding which tasks are moved during
resource leveling and MS doesn't make public the exact algorithm it uses.
But to override it, use the Task Priority field. Tasks with lower
priorities, lower number in the field, will be delayed by leveling before
tasks with higher priorities will, letting you control the sequencing of
tasks when there're no process-driven links to control it.
Just curious why this is an issue for you? The order of tasks in the task
list normally would have little if any actual relationship to the order of
their start dates, although in simple real world projects it make often
accidently work out that they do roughly correspond. The task list should
be organized as an outlined breakdown of the project's deliverables and
often those deliverables are created by parallel processes. It's by no
means unusual for one of the tasks involved in the creation of Deliverable A
(summary task A, in other words) up near the top of the list to start later
than one of the tasks in the creation of Deliverable D (represented as
summary task G) located many rows down below the first one in the task list
outline. About the only time I can see needing the behavior you ask for is
if you are trying to outline your tasks list by time, such as ...
Week 1
Task A, Mon (Bob, Sue)
Task B, Tue-Wed (Bob)
Task C, Tue-Fri (Sue)
Task D, Thur-Fri (Bob)
Week 2
Task E, Mon-Wed
Task F, Thur
etc
but that sort of a task outline is NOT a WBS and will give you no end of
scheduling headaches. Project is NOT just a to-do list documented on a
spiffy waterfall-style calendar but a time-based outline, if that's what
you're attempting, is using it as no more than that.