There's no officially supported way to do this - the API that allows for them to be re-arragned is private. Some third party apps take advantage of this, some just use the officially provided status menu item API, which do not allow re-arranging. I know of at least one app that doesn't support re-arranging natively, but allows you to download a menu item which can be moved (Fantastical, by the way. Their FAQ has a link to the menu item).
In short, it's a mixed bag.
What I've used as a workaround is creating an automator action that launches all the apps with status items in the order I want. So, the first app to launch puts its item all the way on the right, and the subsequent apps add them to the left, in order. Then, I save this workflow as an application and add that to my login items. This doesn't allow you to mix/match official/non-official apps, but it works well enough for me.