I’m also facing same problem. As Marsha stated trying very hard to make each test independent.
The other strategy I’m using currently is concept of smoke test. It is a tiny subset of main test suite. Just after a build I run small sample of most critical tests. For example part of initial data inserting scrips, part of most critical flows test. So before night/weekend run I know whether critical tests are not broken environment is stable.
I learnt in a hard way, that test no 10 should not depend on result data of test no 05. Never reuse data. Now I’m trying hold separate data sets for each test. And you can do that with minimum changes to scripts. Particularly when using DDT.
Think most hard thing is to deal with system state. If test 04 change the state to run test 05 then you have lot of work ahead.