While most BB applications are written/coded to use wifi when available; that is, switch over to wifi for data communications if both are available, not all apps are. In addition, some apps are written so that the user can choose (Auto, BES, BIS, TCP/IP, Wifi, etc.), which means if you set it for TCP/IP, it does not switch over to wifi just because you later connect to wifi.
A good number of weather apps and of course generic java apps are [were] also coded to just use Direct TCP and you have no choice; so even if your device switches over to wifi when you get home from work, all weather updates still use the cell network. A few IM applications I know of also use Direct TCP instead of BIS and/or Wifi. You can confirm this during the next BIS outage (knock on wood), where your apps that use TCP continue to work even though you have no BBM, email, etc. on mobile network or wifi.
As others have already suggested, the only way to truly ensure you are not charged for data when you are connected to wifi is to shut off the mobile network. Or, get an app that turns off mobile network when you are connected to wifi and turns on mobile network when you disconnect from wifi. I think there is a free app on Appworld that does exactly that. Yes, here it is:
Free Cell Network or WiFi - Download Cell Network or WiFi - Free Apps from BlackBerry App World
That app, combined with the many apps already out there that turn off wifi based on your cell tower location, also helps save battery power too.