That blend mode is order-dependent.
You are blending based on values already in the color buffer and probably writing to the depth buffer at the same time. The depth buffer is not used to re-order your polygons, just to test whether the fragments they create should be visible or not. Since depth testing results in a binary decision (accept/reject on the basis of what has already been drawn), this really makes life difficult when it comes time to blend translucent polygons.
If you do not sort your translucent polygons from back-to-front and draw all opaque polygons first, then your translucent polygons can wind up occluding things instead of properly blending.
This article on Transparency Sorting might explain what I just said a little bit more clearly.