First, always, always, ALWAYS have free space in your mdf data files (or ndf files). This goes for the logs as well. Growing a file on demand is an expensive process and will impact performance. These are not Excel or Word files, but database files for a server process.
Second, as you change data, your logs and data files get filled up. Log backups are there to help with DR, but also they mark the space in the logs as free once it's backed up, so have these set up.
In your data files, as you add, and possibly update data, you need more space. So if you are doing that, space will get used up. You should have 1-6 months of space for data growth in your data files. The amount depends on how often you want to check things.
Third, shrinking files causes internal fragmentation. Don't do it. Set a size.
Fourth, reindexing, and other maintenance operations need space, so they could cause an auto-grow.
If the file autogrows, it can grow by a set MB amount or a percentage. You can check this in the database properties, but this shouldn't be how you manage space, this is for emergencies.
Does that help? Other questiosn?
Follow me on Twitter: @way0utwestForum Etiquette: How to post data/code on a forum to get the best help
My Blog: www.voiceofthedba.com