There will probably come a time when you want to do something not readily covered in Solr's APIs. Manually editing the clusterstate.json is easy to do but should be approached with caution.
I wanted to drop all shards from a single host from my Solr cluster (didn't care about losing the data) and do a little spring cleaning. To open a command-line interface with ZK:
/path/to/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181
Then simply:
get /clusterstate.json
Place that content into a local file. After backing up the original content, make your edits. For instance, to drop the dead nodes, delete JSON elements with "down" states:
To upload your new clusterstate.json (no need to halt services):
/path/to/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181 set /clusterstate.json "`cat /local/path/to/clusterstate.json`"