Bazaar does support push without bzrtools. For remote push, you can use ftp out of the box, or install the Paramiko ssh library to use it with almost any ssh account. (e.g. bzr push sftp://myshellhost/home/ian/branch)
The difference between checkout and branch is that checkout does not create an independent branch-- all of your changes will go into the original branch when you commit. It's very much like svn co, and sharing a branch using svn. If you're out of date, you must update before you can commit. branch, on the other hand, creates a new independent line of development that will not affect the original, until you deliberately merge it in.
Re: push -- I guess it was that I couldn't tell the difference between didn't-work and shouldn't-work. It didn't work for me, but I couldn't tell that if it should or shouldn't. Which I guess comes back to the error message thing. Or maybe it was something related to the versions I used -- I upgraded from 0.7 to 0.8pre at some point in my testing, and also installed bzrtools, and something eventually started working that didn't before.
The checkout thing makes sense then, and makes it more interesting. If that works fairly easily with remote repositories, then that will be a very nice bridge from traditional svn usage.# Ian Bicking