Not that I know of. Configuring a static address is analogous to telling the computer to completely ignore the network - a static address is in concept "always available" (barring a IP conflict) from the computer's point of view.
If you can find a way to use multiple network interfaces, configure one for DHCP and one for static, and set the static one to have a higher metric (cost) than the DHCP one. This will cause the system to use the DHCP if it's available, but fall back to the static one if the system isn't connected to a DHCP network. Most laptops don't have this, so you might need to use a USB network interface to achieve this.
If you're using a laptop running linux (you tagged windows 7, so this is more for completeness), then you can use IP aliasing to assign two IPs to the same interface. Combine with the above idea to create a network port which will try to use DHCP, but fall back to static IP if DHCP fails.
Don't know the answer for Windows 7, but many years ago (the XP times) some laptop manufacturers had their own software to handle this, one could define different settings for different locations and switch between them; I think the IBM one was called Access Connections or something similar. From what I remember, using the built-in network XP settings one could do this with Alternate Configuration or something like that, but it didn't work well. – lupincho – 2012-06-29T19:40:55.380
Why don't go the other way around, configure the DHCP server at the office to assign user an static IP so it will always work. – jhcaiced – 2012-06-29T22:53:06.747