How does NXT prevent blockchain bloat since it does so many different things with its blockchain? How does NXT prevent blockchain bloat since it has a built in message system and other features? Wouldn't the NXT blockchain grow to be really big in the future and pose a problem for people storing the blockchain as compared to other coins?
A special feature called Blockchain Shrinking is supposed to solve this problem.

Every year (or month) a new genesis block ("rolling genesis block") will be generated by every node. This block will contain only actual information (for example, only one depositing transaction instead of hundreds of them).

Blockchain Shrinking requires other features to be implemented too - Service Providers and Distributed Storage. These features are necessary because new nodes may need to make sure that a particular rolling genesis block is legitimate. This will be done by downloading and analysing all (or some) blockchains that existed before the most recent shrinking. Please, note that such blockchains will be stored only by some nodes that decided to do so (they will get extra payments for providing this service). There is still a possibility that none of the nodes will store the old information, in this case Nxt couldn't be called "100% trustless".