For all budding blogging client implementors who are using the MetaWeblog API with Movable Type, it may be worth mentioning that the publish parameter of newPost is slighly misleading. You might expect that it determines whether the post has draft or publish status but in fact it determines whether the static files relating to the post get created. The post itself is always created with publish status.
The Movable Type code explains:
## In 2.1 we changed the behavior of the $publish flag. Previously,
## it was used to determine the post status. That was a bad idea.
## So now entries added through XML-RPC are always set to publish,
## *unless* the user has set "NoPublishMeansDraft 1" in mt.cfg, which
## enables the old behavior.