The SortOrder is used to determine the sort order for nodes within a hierarchy. You would use the property when you want the nodes under a parent to appear in a certain order. Out of the box sort order is alpha numeric, but you can create a custom sort order.
Is there a way to disable node sorting order or in other word enable sorting in any order the user wants? There is no one particular rule that can be applied. I tried to create a derived Sort property and assigned it a value/formula of just 0 or 1. When I dragged a node around and tried to drop it as a sibling somewhere else higher up in the tree under the same parent, I got this message: "1: The server returned an error processing CopyNodes: Index (zero based) must be greater than or equal to zero and less than the size of the argument list."