We are currently developing a heavily customised rollout of Magento for a client. As part of the modifications, we had to customise the product search within the Admin area. In Magento, this can be done using the 'override' functionality - meaning that core code is left untouched and upgrades shouldn't result in your modifications being overwritten.
To help others get a handle on the correct approach to take when doing this, we've published a guide on the Magento wiki - you can read it here. Please check it out and chip in with any corrections or improvements.