I never heard of that client before but my guess is that it is not something that you are doing but the client (activex control) itself. Anyway, using incorrect presence show value is not a problem since the server will ignore invalid values and assume that there was not show value. The only annoying thing is that your warn.log will grow.
Anyway, I still think the problem is the heartbeat so you can either contact the IPWorks devs to 1) add heartbeats and 2) use correct presence show values or you can increment the idle timeout value. However, you should know that setting high values will introduce this side effect: dangling connections will still be considered online and the server will take a long time to realize that they are gone. Since you are playing with webclients I would say that it will be a common case for you to have users killing their browsers before the client can tell the server that the client is logging out. The system property to set in the admin console is xmpp.client.idle. The value is in milliseconds.