So, my question is, what determines database order, and is there anything i can do to force it to change.
Your ORDER BY clauses, and if there isn't any, or the ORDER BY is not unique, there is nothing that determines the order. You get what you get. Yes, if you are doing something like a Clustered Index Scan, you are likely to get rows in the order they are physically sorted. Then again, if you join in on a merry-go-round scan, you could get something else. If there is parallelism, the result could be from any thread.
Throw in sorting on something non-unique, and all bets are off.
If you want a deterministic result, you need to write deterministic queries which only have one possible result.