The mail component built into ASP.Net can handle your bulk mailing, however it is more intended for single emails.
Generally any web scripting language (php, asp.net, etc.) are not that great of a match for a large, time consuming process - such as mailing a large list. This can cause threading issues, thread pools to get exhausted, etc.
What's a better method is to have a background script running that takes care of these, and the web page only triggers something so the other application knows it needs to go send the mails. This isn't always practical however.
The various bulk SMTP mailers, as you say, write the mail queue to the disk quickly so your asp.net page returns, then they send it in a background thread (almost like I am describing above, but not quite as good).
The built in component can do this, just don't specify a smtp server and it will spool the mail to the local SMTP server (note: SMTP service must be installed on server).