The best alternative is to use RSI's ENVI program. ENVI automatically writes out the GEOTIFF structure associated with the images you have loaded in its workspace, when you choose from a menu to write your image out as a GEOTIFF file. That saves many users from the need to understand the exact specifics of the GEOTIFF standard.
The IDL programmer has to be more knowledgable. There is nothing that difficult about the basic syntax of the WRITE_TIFF procedure - and that is indeed the procedure you want to call for image exchange with ArcGIS. However, the knowledge required to assign values to fields in the GEOTIFF structure is not trivial and may well require a somewhat lengthy visit to GEOTIFF's website at:
http://www.remotesensing....pec/geotiffhome.html
If you know the values of the header information that the GEOTIFF structure is looking for, and your only question is about Structure syntax in IDL, then this is the kind of syntax you are looking for:
my_geotiff_struct = { $
MODELPIXELSCALETAG:[1.0d, 1.0d, 1.0d], $
MODELTRANSFORMATIONTAG:[[1.0d,0d,0d,0d],[0d,1.0d,0d,0d],$
[0d,0d,1.0d,0d],[0d,0d,0d,0d]], $
MODELTIEPOINTTAG: ...
...
VERTICALDATUMGEOKEY:10, $
VERTICALUNITSGEOKEY:2 }
That is basic IDL structure syntax you could construct using the GEOTIFF tags shown in the Online Help for WRITE_TIFF. With that you could then possibly complete a very simple procedure call like:
WRITE_TIFF, 'my_geotiff.tif', image, GEOTIFF=my_geotiff_struct
That explains the general IDL approach. I myself, however, have no details about the GEOTIFF standards that would lead to proper assignment of values in the GEOTIFF structure.
Good luck.
J3