I have a few things to say.
First, the whole 90% figure people keep throwing out. Just because 90% of marriages sent to tribunals are judged null doesn’t mean 90% of marriages are null. You have to filter that. First, through the number of marriages that actually break up. Then through people who actually seek an annulment. Then through the number of cases that actually make it through a parish priest to be presented to the tribunal. Those filters reduce that number significantly each time. You cannot extrapolate that figure to make it seem as though 90% of people are in invalid marriages.
If you take the stat that 50% of marriages end in divorce (even catholics), and apply it to that 90% annulment rate stat, you get 45%. So 45% of catholic marriages are judged invalid? But remember that not all catholic divorces are put up for annulment, so filter that again. Consider that maybe 80% of the catholic divorces get put up for annulment, that stat turns to 36% of catholic marriages are judged invalid. But wait, not all annulments make off the ground past the priest. Then you apply the filter that maybe 70% of cases brought to a priest get processed, and you get 25% of catholic marriages are judged not valid. But not all annulments are made on the grounds of impediments to marriage. Many are judged null because they didn’t have canonical form (not married in a church, etc). So you can further filter that by assuming that maybe 70% of cases brought to tribunal aren’t decided because of lack of canonical form, and you get about 17.6%. So once you’ve filtered that down, you get that maybe 18% of catholic marriages are declared invalid because of factors that lead to impediments at the time of marriage. That’s not an incredibly high number, less than 20%. And frankly, I think the percentages I used were rather high, so I think in actuality that number is much, much lower. I doubt that 80% of catholics apply for annulments after divorce, or that 70% of those make it through the intial process. And many that do make it through because of lack of form. Even slight overstatements of those numbers will bring down that final percentage.