It's a 2004 so it's old enough, but it's normal for it to take a while for heat to start, the entire engine block has to actually get hot enough for the radiator to start circulating hot coolant. That takes a while. The engine temperature needle is pegged as low as it can display and only slightly moves up by the time I get home. On a hot summer day it will display a hotter temp, so I know it's working.
If I started my car and let it run every time it's below freezing I'd be wasting a lot of gas.

I only do that when it's like 30 below, and even then sometimes I don't, but I really try to do it as it's not good for the car to get in and drive... then again some people will argue it's not good to let it run. My remote car starter works like crap when it's warm out so I don't use it, it just keeps activating the starter without actually starting the car and gets stuck in an infinite loop until the driver door is open, or until the battery dies. I should probably get that checked.