If you implement it as a multiuse ActiveX EXE, the server will launch the EXE on receipt of a client request, and free it once all clients are finished with the object. This is not at all uncommon on corporate systems. To go through the initialization each time a request comes in is prohibitive. A service can solve this problem in two ways. First, since a service can be configured to launch automatically when a system is started, you can implement your business objects in the service and simply perform the initialization in the morning when the system boots.
Services are also ideal for scheduled operations that run in the background.
Built in waitable timer support allows services you create to easily perform operations on a scheduled or periodic basis. These objects can work in two ways. Let's say you have a critical operation that you don't want to allow users to access directly. Since the client objects run in the service account, you can have it act as an agent for the user - performing operations that the user is not allowed to do. At other times, however, you might want the client object to perform operations as if it were logged in to the user's account.