The usual causes of bloat were listed by Pat Hartman, but she left out one more cause of bloat. As it happens, updating a table will also cause bloat because of the possibility that you might need to do a rollback. If you are using CurrentDB.Execute on an SQL update, the fact that a rollback can occur after a failure means that briefly you have two copies of the table - the original copy and the updated copy - and that as a result, when the updated records replace the originals, they get dropped into "bloat-space" which also where deleted records go. INSERT INTO does not do as much to contribute to bloat as deletes and updates. However, a repeated cycle of delete/insert to the same table is a potential invitation to bloat.
Your design is your design and I will not blindly criticize it. If you really think you need 100 fields in a table, then perhaps you need it. Having said that, we generally get VERY suspicious of tables that wide. One question I have to ask is whether you have applied normalization techniques to this table. It is possible that your extra-wide table can be split using normalization so that you have taller, narrower tables that don't carry quite so much baggage when you delete/update records within them.