>> Unless you have gone out of your way to design code that will cause the thread not to Abort in a timely manner, you will be safe.
In most cases yes - in others maybe not.
The biggest problem with multi-threaded code is if you want to exit your application and you have outstanding threads. This can cause your app to hang and not unload or in some cases your app to crash.
That's one place where you need to either Join() or Abort() in order to make your app release.
In general you should ALWAYS hang on to a thread reference for at least this task.
If you truly tdo call and forget I suspect an Async delegate might be better and let .NET worry about cleanup.