You don't mention if the variables are continuous or discrete or how the zeros arise. If the variables are discrete then Latent Class Analysis may be appropriate. See http://www.john-uebersax.com/stat/
Fuzzy Clustering Level Analysis via Statistical Scheme Applying Akaike’s Information Criterion, Shuya Kanagawa and Kimiaki Shinkai, International Journal of Innovative Computing, Information and Control, Vol.4, (2008), pp.2523-2531.
Please see the above paper. We tried to find reasonable clustering level using AIC.