I know that this question is rather old, but I wanted to add my 2 cents, in case others come across this thread trying to answer the same question...
The previous answers are correct when you truly wish to RESAMPLE your data, such as if you are aggregating your data from a 30 m pixel size to a 90m pixel size. In this case you are attempting to create a new value for each individual pixel, based on a collection of nearby pixels. So yes, here for discrete data sets you would select Nearest Neighbor, while for continuous data, you would choose either Bilinear or Cubic Convolution.
In this question however, the goal is NOT actually to resample the data, but simply to convert the existing data to a new projection - you want the same values, just in a new projection. In this case, you DO want to use Nearest Neighbor resampling for discrete as well as continuous datasets, to maintain the integrity of your original data values. I know this statement goes against everything you read about "resampling", but really think critically about what you want to achieve, and what you are doing to the data. Also, I don't make this recommendation on a whim...I've spent 5 years working on a PhD specializing in GIS/Remote Sensing, as well as teaching GIS/remote sensing undergrad courses.
Another note, the original poster asked about zero and/or negative values... If these values are true data values (ie the altitude can actually be 0 or -34.5), then you want to include these values. However if the value(s) in question are not true data, and instead used to represent NoDATA (say 0 or -9999), then you need to mask these pixels out of your raster (remove) prior to resampling via bilinear or cubic convolution. Otherwise, those -9999 pixels will be included in the resampling calculation, as if that pixel had a real altitude of -9999 and you will end up with invalid data values. As a VERY simplified example in cubic convolution, if your 4 nearest cell values are 4, 5, 16, -9999, including the -9999 could result in a new pixel value of -9974, which is not valid data.